From 3502b7fcdfd69b9633de183b5507eb03dac441a3 Mon Sep 17 00:00:00 2001 From: v7lin Date: Fri, 28 Jan 2022 21:08:09 +0800 Subject: [PATCH] =?UTF-8?q?=E5=8D=87=E7=BA=A7=20Android=20SDK?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- CHANGELOG.md | 4 ++ android/build.gradle | 6 +-- .../v7lin/weibo_kit/WeiboKitPlugin.java | 41 +++++++++++++++---- example/android/app/build.gradle | 4 +- example/ios/Flutter/AppFrameworkInfo.plist | 2 +- example/ios/Podfile.lock | 12 +++--- example/ios/Runner.xcodeproj/project.pbxproj | 8 ++-- .../xcshareddata/xcschemes/Runner.xcscheme | 2 +- .../xcshareddata/IDEWorkspaceChecks.plist | 8 ++++ example/pubspec.lock | 22 +++++----- example/pubspec.yaml | 2 +- ios/weibo_kit.podspec | 2 +- pubspec.lock | 16 ++++---- pubspec.yaml | 2 +- 14 files changed, 85 insertions(+), 46 deletions(-) create mode 100644 example/ios/Runner.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist diff --git a/CHANGELOG.md b/CHANGELOG.md index 2e9b837..b6603aa 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,7 @@ +## 3.1.0 + +* 升级 Android SDK + ## 3.0.0 * 重构 diff --git a/android/build.gradle b/android/build.gradle index b348f1d..bccad87 100644 --- a/android/build.gradle +++ b/android/build.gradle @@ -1,5 +1,5 @@ group 'io.github.v7lin.weibo_kit' -version '3.0.0' +version '3.1.0' buildscript { repositories { @@ -22,7 +22,7 @@ rootProject.allprojects { apply plugin: 'com.android.library' android { - compileSdkVersion 28 + compileSdkVersion 31 defaultConfig { minSdkVersion 16 @@ -50,5 +50,5 @@ android { dependencies { // v10.10.0 vendorImplementation 'androidx.appcompat:appcompat:1.0.0' - vendorImplementation 'io.github.sinaweibosdk:core:11.11.2@aar' + vendorImplementation 'io.github.sinaweibosdk:core:11.12.0@aar' } diff --git a/android/src/main/java/io/github/v7lin/weibo_kit/WeiboKitPlugin.java b/android/src/main/java/io/github/v7lin/weibo_kit/WeiboKitPlugin.java index 1ea8ef6..a5ce75e 100644 --- a/android/src/main/java/io/github/v7lin/weibo_kit/WeiboKitPlugin.java +++ b/android/src/main/java/io/github/v7lin/weibo_kit/WeiboKitPlugin.java @@ -1,12 +1,17 @@ package io.github.v7lin.weibo_kit; +import android.content.ComponentName; import android.content.Context; import android.content.Intent; +import android.content.pm.PackageManager; +import android.content.pm.ProviderInfo; import android.net.Uri; +import android.os.Build; import androidx.annotation.NonNull; import com.sina.weibo.sdk.api.ImageObject; +import com.sina.weibo.sdk.api.MultiImageObject; import com.sina.weibo.sdk.api.TextObject; import com.sina.weibo.sdk.api.WebpageObject; import com.sina.weibo.sdk.api.WeiboMultiMessage; @@ -14,10 +19,13 @@ import com.sina.weibo.sdk.auth.AuthInfo; import com.sina.weibo.sdk.auth.Oauth2AccessToken; import com.sina.weibo.sdk.auth.WbAuthListener; import com.sina.weibo.sdk.common.UiError; +import com.sina.weibo.sdk.content.FileProvider; import com.sina.weibo.sdk.openapi.IWBAPI; import com.sina.weibo.sdk.openapi.WBAPIFactory; import com.sina.weibo.sdk.share.WbShareCallback; +import java.io.File; +import java.util.ArrayList; import java.util.HashMap; import java.util.Map; import java.util.UUID; @@ -265,15 +273,34 @@ public class WeiboKitPlugin implements FlutterPlugin, ActivityAware, PluginRegis message.textObject = object; } - final ImageObject object = new ImageObject(); - if (call.hasArgument(ARGUMENT_KEY_IMAGEDATA)) { - object.imageData = call.argument(ARGUMENT_KEY_IMAGEDATA);// 2 * 1024 * 1024 - } else if (call.hasArgument(ARGUMENT_KEY_IMAGEURI)) { + if (iwbapi != null && iwbapi.isWBAppSupportMultipleImage() && call.hasArgument(ARGUMENT_KEY_IMAGEURI)) { + final MultiImageObject object = new MultiImageObject(); String imageUri = call.argument(ARGUMENT_KEY_IMAGEURI); - object.imagePath = Uri.parse(imageUri).getPath();// 512 - 10 * 1024 * 1024 + ArrayList images = new ArrayList<>(); + if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.N) { + try { + final ProviderInfo providerInfo = applicationContext.getPackageManager().getProviderInfo(new ComponentName(applicationContext, FileProvider.class), PackageManager.MATCH_DEFAULT_ONLY); + final Uri shareFileUri = FileProvider.getUriForFile(applicationContext, providerInfo.authority, new File(Uri.parse(imageUri).getPath())); + applicationContext.grantUriPermission("com.sina.weibo", shareFileUri, Intent.FLAG_GRANT_READ_URI_PERMISSION); + images.add(shareFileUri); + } catch (PackageManager.NameNotFoundException e) { + images.add(Uri.parse(imageUri)); + } + } else { + images.add(Uri.parse(imageUri)); + } + object.imageList = images; + message.mediaObject = object; + } else { + final ImageObject object = new ImageObject(); + if (call.hasArgument(ARGUMENT_KEY_IMAGEDATA)) { + object.imageData = call.argument(ARGUMENT_KEY_IMAGEDATA);// 2 * 1024 * 1024 + } else if (call.hasArgument(ARGUMENT_KEY_IMAGEURI)) { + String imageUri = call.argument(ARGUMENT_KEY_IMAGEURI); + object.imagePath = Uri.parse(imageUri).getPath();// 512 - 10 * 1024 * 1024 + } + message.mediaObject = object; } - - message.mediaObject = object; } else if (METHOD_SHAREWEBPAGE.equals(call.method)) { final WebpageObject object = new WebpageObject(); object.identify = UUID.randomUUID().toString(); diff --git a/example/android/app/build.gradle b/example/android/app/build.gradle index e600dea..33ea2b8 100644 --- a/example/android/app/build.gradle +++ b/example/android/app/build.gradle @@ -25,7 +25,7 @@ apply plugin: 'com.android.application' apply from: "$flutterRoot/packages/flutter_tools/gradle/flutter.gradle" android { - compileSdkVersion 28 + compileSdkVersion 31 lintOptions { disable 'InvalidPackage' @@ -35,7 +35,7 @@ android { // TODO: Specify your own unique Application ID (https://developer.android.com/studio/build/application-id.html). applicationId "io.github.v7lin.weibo_kit_example" minSdkVersion 16 - targetSdkVersion 28 + targetSdkVersion 31 versionCode flutterVersionCode.toInteger() versionName flutterVersionName } diff --git a/example/ios/Flutter/AppFrameworkInfo.plist b/example/ios/Flutter/AppFrameworkInfo.plist index 6b4c0f7..f2872cf 100644 --- a/example/ios/Flutter/AppFrameworkInfo.plist +++ b/example/ios/Flutter/AppFrameworkInfo.plist @@ -21,6 +21,6 @@ CFBundleVersion 1.0 MinimumOSVersion - 8.0 + 9.0 diff --git a/example/ios/Podfile.lock b/example/ios/Podfile.lock index 581a3dc..e1cbe75 100644 --- a/example/ios/Podfile.lock +++ b/example/ios/Podfile.lock @@ -8,10 +8,10 @@ PODS: - sqflite (0.0.2): - Flutter - FMDB (>= 2.7.5) - - weibo_kit (3.0.0): + - weibo_kit (3.1.0): - Flutter - - weibo_kit/vendor (= 3.0.0) - - weibo_kit/vendor (3.0.0): + - weibo_kit/vendor (= 3.1.0) + - weibo_kit/vendor (3.1.0): - Flutter - Weibo_SDK (~> 3.3.0) - Weibo_SDK (3.3.0) @@ -38,13 +38,13 @@ EXTERNAL SOURCES: :path: ".symlinks/plugins/weibo_kit/ios" SPEC CHECKSUMS: - Flutter: 434fef37c0980e73bb6479ef766c45957d4b510c + Flutter: 50d75fe2f02b26cc09d224853bb45737f8b3214a FMDB: 2ce00b547f966261cd18927a3ddb07cb6f3db82a path_provider: abfe2b5c733d04e238b0d8691db0cfd63a27a93c sqflite: 6d358c025f5b867b29ed92fc697fd34924e11904 - weibo_kit: 328750aa285afbc1b25a16e7c8aae9c30a4ab377 + weibo_kit: 2b9acdf65bf6effde4231759e53e136db0c01380 Weibo_SDK: 7478846cccb43c4785ba76b214115fb7ec9dc0d4 PODFILE CHECKSUM: 8e679eca47255a8ca8067c4c67aab20e64cb974d -COCOAPODS: 1.10.1 +COCOAPODS: 1.11.2 diff --git a/example/ios/Runner.xcodeproj/project.pbxproj b/example/ios/Runner.xcodeproj/project.pbxproj index 3110075..116fc15 100644 --- a/example/ios/Runner.xcodeproj/project.pbxproj +++ b/example/ios/Runner.xcodeproj/project.pbxproj @@ -166,7 +166,7 @@ 97C146E61CF9000F007C117D /* Project object */ = { isa = PBXProject; attributes = { - LastUpgradeCheck = 1020; + LastUpgradeCheck = 1300; ORGANIZATIONNAME = ""; TargetAttributes = { 97C146ED1CF9000F007C117D = { @@ -350,7 +350,7 @@ GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; GCC_WARN_UNUSED_FUNCTION = YES; GCC_WARN_UNUSED_VARIABLE = YES; - IPHONEOS_DEPLOYMENT_TARGET = 8.0; + IPHONEOS_DEPLOYMENT_TARGET = 9.0; MTL_ENABLE_DEBUG_INFO = NO; SDKROOT = iphoneos; SUPPORTED_PLATFORMS = iphoneos; @@ -433,7 +433,7 @@ GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; GCC_WARN_UNUSED_FUNCTION = YES; GCC_WARN_UNUSED_VARIABLE = YES; - IPHONEOS_DEPLOYMENT_TARGET = 8.0; + IPHONEOS_DEPLOYMENT_TARGET = 9.0; MTL_ENABLE_DEBUG_INFO = YES; ONLY_ACTIVE_ARCH = YES; SDKROOT = iphoneos; @@ -482,7 +482,7 @@ GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; GCC_WARN_UNUSED_FUNCTION = YES; GCC_WARN_UNUSED_VARIABLE = YES; - IPHONEOS_DEPLOYMENT_TARGET = 8.0; + IPHONEOS_DEPLOYMENT_TARGET = 9.0; MTL_ENABLE_DEBUG_INFO = NO; SDKROOT = iphoneos; SUPPORTED_PLATFORMS = iphoneos; diff --git a/example/ios/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme b/example/ios/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme index a28140c..3db53b6 100644 --- a/example/ios/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme +++ b/example/ios/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme @@ -1,6 +1,6 @@ + + + + IDEDidComputeMac32BitWarning + + + diff --git a/example/pubspec.lock b/example/pubspec.lock index 68cc62b..5953285 100644 --- a/example/pubspec.lock +++ b/example/pubspec.lock @@ -14,7 +14,7 @@ packages: name: analyzer url: "https://pub.flutter-io.cn" source: hosted - version: "1.7.1" + version: "1.7.2" archive: dependency: transitive description: @@ -35,7 +35,7 @@ packages: name: async url: "https://pub.flutter-io.cn" source: hosted - version: "2.6.1" + version: "2.8.2" boolean_selector: dependency: transitive description: @@ -105,14 +105,14 @@ packages: name: characters url: "https://pub.flutter-io.cn" source: hosted - version: "1.1.0" + version: "1.2.0" charcode: dependency: transitive description: name: charcode url: "https://pub.flutter-io.cn" source: hosted - version: "1.2.0" + version: "1.3.1" checked_yaml: dependency: transitive description: @@ -215,7 +215,7 @@ packages: name: flutter_cache_manager url: "https://pub.flutter-io.cn" source: hosted - version: "3.0.0-nullsafety.1" + version: "3.3.0" flutter_test: dependency: "direct dev" description: flutter @@ -304,14 +304,14 @@ packages: name: matcher url: "https://pub.flutter-io.cn" source: hosted - version: "0.12.10" + version: "0.12.11" meta: dependency: transitive description: name: meta url: "https://pub.flutter-io.cn" source: hosted - version: "1.3.0" + version: "1.7.0" mime: dependency: transitive description: @@ -526,7 +526,7 @@ packages: name: test_api url: "https://pub.flutter-io.cn" source: hosted - version: "0.3.0" + version: "0.4.3" timing: dependency: transitive description: @@ -554,7 +554,7 @@ packages: name: vector_math url: "https://pub.flutter-io.cn" source: hosted - version: "2.1.0" + version: "2.1.1" watcher: dependency: transitive description: @@ -575,7 +575,7 @@ packages: path: ".." relative: true source: path - version: "3.0.0" + version: "3.1.0" win32: dependency: transitive description: @@ -605,5 +605,5 @@ packages: source: hosted version: "3.1.0" sdks: - dart: ">=2.12.0 <3.0.0" + dart: ">=2.14.0 <3.0.0" flutter: ">=1.24.0-10" diff --git a/example/pubspec.yaml b/example/pubspec.yaml index d7121a8..12fb44e 100644 --- a/example/pubspec.yaml +++ b/example/pubspec.yaml @@ -27,7 +27,7 @@ dependencies: cupertino_icons: ^1.0.2 image: ^3.0.1 - flutter_cache_manager: ^3.0.0-nullsafety.1 + flutter_cache_manager: ^3.0.0 json_annotation: ^4.0.0 diff --git a/ios/weibo_kit.podspec b/ios/weibo_kit.podspec index 655958b..c3aa9a0 100644 --- a/ios/weibo_kit.podspec +++ b/ios/weibo_kit.podspec @@ -4,7 +4,7 @@ # Pod::Spec.new do |s| s.name = 'weibo_kit' - s.version = '3.0.0' + s.version = '3.1.0' s.summary = 'A powerful Flutter plugin allowing developers to auth/share with natvie Android & iOS Weibo SDKs.' s.description = <<-DESC A powerful Flutter plugin allowing developers to auth/share with natvie Android & iOS Weibo SDKs. diff --git a/pubspec.lock b/pubspec.lock index ca3f275..33e9740 100644 --- a/pubspec.lock +++ b/pubspec.lock @@ -28,7 +28,7 @@ packages: name: async url: "https://pub.flutter-io.cn" source: hosted - version: "2.6.1" + version: "2.8.2" boolean_selector: dependency: transitive description: @@ -98,14 +98,14 @@ packages: name: characters url: "https://pub.flutter-io.cn" source: hosted - version: "1.1.0" + version: "1.2.0" charcode: dependency: transitive description: name: charcode url: "https://pub.flutter-io.cn" source: hosted - version: "1.2.0" + version: "1.3.1" checked_yaml: dependency: transitive description: @@ -262,14 +262,14 @@ packages: name: matcher url: "https://pub.flutter-io.cn" source: hosted - version: "0.12.10" + version: "0.12.11" meta: dependency: transitive description: name: meta url: "https://pub.flutter-io.cn" source: hosted - version: "1.3.0" + version: "1.7.0" mime: dependency: transitive description: @@ -393,7 +393,7 @@ packages: name: test_api url: "https://pub.flutter-io.cn" source: hosted - version: "0.3.0" + version: "0.4.3" timing: dependency: transitive description: @@ -414,7 +414,7 @@ packages: name: vector_math url: "https://pub.flutter-io.cn" source: hosted - version: "2.1.0" + version: "2.1.1" watcher: dependency: transitive description: @@ -437,5 +437,5 @@ packages: source: hosted version: "3.1.0" sdks: - dart: ">=2.12.0 <3.0.0" + dart: ">=2.14.0 <3.0.0" flutter: ">=1.20.0" diff --git a/pubspec.yaml b/pubspec.yaml index 7630aad..11dfddc 100644 --- a/pubspec.yaml +++ b/pubspec.yaml @@ -1,6 +1,6 @@ name: weibo_kit description: A powerful Flutter plugin allowing developers to auth/share with natvie Android & iOS Weibo SDKs. -version: 3.0.0 +version: 3.1.0 # author: v7lin homepage: https://github.com/rxreader/weibo_kit.git