diff --git a/CHANGELOG.md b/CHANGELOG.md
index 6d29f88..2d53cc4 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,3 +1,8 @@
+## 3.1.0
+
+* 升级 Android/iOS SDK
+* 新增 setIsPermissionGranted 函数
+
## 3.0.0
* 重构
diff --git a/android/src/main/java/io/github/v7lin/tencent_kit/TencentKitPlugin.java b/android/src/main/java/io/github/v7lin/tencent_kit/TencentKitPlugin.java
index fd14293..94d9e05 100644
--- a/android/src/main/java/io/github/v7lin/tencent_kit/TencentKitPlugin.java
+++ b/android/src/main/java/io/github/v7lin/tencent_kit/TencentKitPlugin.java
@@ -167,7 +167,16 @@ public class TencentKitPlugin implements FlutterPlugin, ActivityAware, ActivityR
@Override
public void onMethodCall(@NonNull MethodCall call, @NonNull Result result) {
- if (METHOD_REGISTERAPP.equals(call.method)) {
+ if ("setIsPermissionGranted".equals(call.method)) {
+ final boolean granted = call.argument("granted");
+ final String buildModel = call.argument("build_model");
+ if (!TextUtils.isEmpty(buildModel)) {
+ Tencent.setIsPermissionGranted(granted, buildModel);
+ } else {
+ Tencent.setIsPermissionGranted(granted);
+ }
+ result.success(null);
+ } else if (METHOD_REGISTERAPP.equals(call.method)) {
final String appId = call.argument(ARGUMENT_KEY_APPID);
// final String universalLink = call.argument(ARGUMENT_KEY_UNIVERSALLINK);
String authority = null;
@@ -183,15 +192,6 @@ public class TencentKitPlugin implements FlutterPlugin, ActivityAware, ActivityR
tencent = Tencent.createInstance(appId, applicationContext);
}
result.success(null);
- } else if ("setIsPermissionGranted".equals(call.method)) {
- final boolean granted = call.argument("granted");
- final String buildModel = call.argument("build_model");
- if (!TextUtils.isEmpty(buildModel)) {
- Tencent.setIsPermissionGranted(granted, buildModel);
- } else {
- Tencent.setIsPermissionGranted(granted);
- }
- result.success(null);
} else if (METHOD_ISQQINSTALLED.equals(call.method)) {
result.success(isAppInstalled(applicationContext, "com.tencent.mobileqq"));
} else if (METHOD_ISTIMINSTALLED.equals(call.method)) {
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 15221da..07a7302 100644
--- a/example/ios/Podfile.lock
+++ b/example/ios/Podfile.lock
@@ -35,7 +35,7 @@ EXTERNAL SOURCES:
:path: ".symlinks/plugins/tencent_kit/ios"
SPEC CHECKSUMS:
- Flutter: 434fef37c0980e73bb6479ef766c45957d4b510c
+ Flutter: 50d75fe2f02b26cc09d224853bb45737f8b3214a
FMDB: 2ce00b547f966261cd18927a3ddb07cb6f3db82a
path_provider: abfe2b5c733d04e238b0d8691db0cfd63a27a93c
sqflite: 6d358c025f5b867b29ed92fc697fd34924e11904
@@ -43,4 +43,4 @@ SPEC CHECKSUMS:
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 3861e5b..c28564b 100644
--- a/example/ios/Runner.xcodeproj/project.pbxproj
+++ b/example/ios/Runner.xcodeproj/project.pbxproj
@@ -165,7 +165,7 @@
97C146E61CF9000F007C117D /* Project object */ = {
isa = PBXProject;
attributes = {
- LastUpgradeCheck = 1020;
+ LastUpgradeCheck = 1300;
ORGANIZATIONNAME = "";
TargetAttributes = {
97C146ED1CF9000F007C117D = {
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 @@
-typedef NS_ENUM(NSInteger,QQApiSendResultCode) {
- EQQAPISENDSUCESS = 0,
- EQQAPIQQNOTINSTALLED = 1, //QQ未安装
- EQQAPIQQNOTSUPPORTAPI = 2, // QQ api不支持
- EQQAPIMESSAGETYPEINVALID = 3,
- EQQAPIMESSAGECONTENTNULL = 4,
- EQQAPIMESSAGECONTENTINVALID = 5,
- EQQAPIAPPNOTREGISTED = 6,
- EQQAPIAPPSHAREASYNC = 7,
- EQQAPIQQNOTSUPPORTAPI_WITH_ERRORSHOW = 8, //QQ api不支持 && SDK显示error提示(已废弃)
- EQQAPIMESSAGEARKCONTENTNULL = 9, //ark内容为空
- EQQAPIMESSAGE_MINI_CONTENTNULL = 10, //小程序参数为空
- EQQAPISENDFAILD = -1, //发送失败
- EQQAPISHAREDESTUNKNOWN = -2, //未指定分享到QQ或TIM
- EQQAPITIMSENDFAILD = -3, //发送失败
- EQQAPITIMNOTINSTALLED = 11, //TIM未安装
- EQQAPITIMNOTSUPPORTAPI = 12, // TIM api不支持
- EQQAPI_INCOMING_PARAM_ERROR = 13, // 外部传参错误
- EQQAPI_THIRD_APP_GROUP_ERROR_APP_NOT_AUTHORIZIED = 14, // APP未获得授权
- EQQAPI_THIRD_APP_GROUP_ERROR_CGI_FAILED = 15, // CGI请求失败
- EQQAPI_THIRD_APP_GROUP_ERROR_HAS_BINDED = 16, // 该组织已经绑定群聊
- EQQAPI_THIRD_APP_GROUP_ERROR_NOT_BINDED = 17, // 该组织尚未绑定群聊
- EQQAPIQZONENOTSUPPORTTEXT = 10000, //qzone分享不支持text类型分享
- EQQAPIQZONENOTSUPPORTIMAGE = 10001, //qzone分享不支持image类型分享
- EQQAPIVERSIONNEEDUPDATE = 10002, //当前QQ版本太低,需要更新至新版本才可以支持
- ETIMAPIVERSIONNEEDUPDATE = 10004, //当前TIM版本太低,需要更新至新版本才可以支持
- EAPPURLTYPESILLEGALITY = 20000, //(>=3.3.8)第三方APP的info.plist中UrlTypes字段存在QQ的UrlScheme
+typedef NS_ENUM(NSInteger, QQApiSendResultCode) {
+ EQQAPISENDSUCESS = 0,
+ EQQAPIQQNOTINSTALLED = 1, // QQ未安装
+ EQQAPIQQNOTSUPPORTAPI = 2, // QQ api不支持
+ EQQAPIMESSAGETYPEINVALID = 3,
+ EQQAPIMESSAGECONTENTNULL = 4,
+ EQQAPIMESSAGECONTENTINVALID = 5,
+ EQQAPIAPPNOTREGISTED = 6,
+ EQQAPIAPPSHAREASYNC = 7,
+ EQQAPIQQNOTSUPPORTAPI_WITH_ERRORSHOW = 8, // QQ api不支持 && SDK显示error提示(已废弃)
+ EQQAPIMESSAGEARKCONTENTNULL = 9, // ark内容为空
+ EQQAPIMESSAGE_MINI_CONTENTNULL = 10, // 小程序参数为空
+ EQQAPISENDFAILD = -1, // 发送失败
+ EQQAPISHAREDESTUNKNOWN = -2, // 未指定分享到QQ或TIM
+ EQQAPITIMSENDFAILD = -3, // 发送失败
+ EQQAPITIMNOTINSTALLED = 11, // TIM未安装
+ EQQAPITIMNOTSUPPORTAPI = 12, // TIM api不支持
+ EQQAPI_INCOMING_PARAM_ERROR = 13, // 外部传参错误
+ EQQAPI_THIRD_APP_GROUP_ERROR_APP_NOT_AUTHORIZIED = 14, // APP未获得授权
+ EQQAPI_THIRD_APP_GROUP_ERROR_CGI_FAILED = 15, // CGI请求失败
+ EQQAPI_THIRD_APP_GROUP_ERROR_HAS_BINDED = 16, // 该组织已经绑定群聊
+ EQQAPI_THIRD_APP_GROUP_ERROR_NOT_BINDED = 17, // 该组织尚未绑定群聊
+ EQQAPI_THIRD_APP_GROUP_ERROR_HAS_UNBINDED = 18, // 该组织已经解绑群聊
+ EQQAPIQZONENOTSUPPORTTEXT = 10000, // qzone分享不支持text类型分享
+ EQQAPIQZONENOTSUPPORTIMAGE = 10001, // qzone分享不支持image类型分享
+ EQQAPIVERSIONNEEDUPDATE = 10002, // 当前QQ版本太低,需要更新至新版本才可以支持
+ ETIMAPIVERSIONNEEDUPDATE = 10004, // 当前TIM版本太低,需要更新至新版本才可以支持
+ EAPPURLTYPESILLEGALITY = 20000, // (>=3.3.8)第三方APP的info.plist中UrlTypes字段存在QQ的UrlScheme
+ EQQAPI_ERROR_USER_NOT_AGREED_AUTHORIZATION = 30001, // 用户未同意隐私协议,用户同意隐私协议后,需要设置[TencentOAuth setIsUserAgreedAuthorization:YES];
};
#pragma mark - QQApiObject(分享对象类型)
// QQApiObject control flags
typedef NS_ENUM(NSUInteger,kQQAPICtrlFlag) {
- kQQAPICtrlFlagQZoneShareOnStart = 0x01,
- kQQAPICtrlFlagQZoneShareForbid = 0x02, //屏蔽好友选择器上的空间入口
- kQQAPICtrlFlagQQShare = 0x04,
- kQQAPICtrlFlagQQShareFavorites = 0x08, //收藏
- kQQAPICtrlFlagQQShareDataline = 0x10, //数据线
- kQQAPICtrlFlagQQShareEnableArk = 0x20, //支持ARK
- kQQAPICtrlFlagQQShareEnableMiniProgram = 0x40, //支持小程序
+ kQQAPICtrlFlagQZoneShareOnStart = 0x01,
+ kQQAPICtrlFlagQZoneShareForbid = 0x02, //屏蔽好友选择器上的空间入口
+ kQQAPICtrlFlagQQShare = 0x04,
+ kQQAPICtrlFlagQQShareFavorites = 0x08, //收藏
+ kQQAPICtrlFlagQQShareDataline = 0x10, //数据线
+ kQQAPICtrlFlagQQShareEnableArk = 0x20, //支持ARK
+ kQQAPICtrlFlagQQShareEnableMiniProgram = 0x40, //支持小程序
};
// 分享到QQ或TIM
@@ -61,10 +63,10 @@ typedef NS_ENUM(NSUInteger, ShareDestType) {
//小程序的类型
typedef NS_ENUM(NSUInteger, MiniProgramType) {
- MiniProgramType_Develop=0, // 开发版
- MiniProgramType_Test=1, // 测试版
- MiniProgramType_Online=3, // 正式版,默认
- MiniProgramType_Preview=4, // 预览版
+ MiniProgramType_Develop = 0, // 开发版
+ MiniProgramType_Test = 1, // 测试版
+ MiniProgramType_Online = 3, // 正式版,默认
+ MiniProgramType_Preview = 4, // 预览版
};
/// 打印回调的block
@@ -74,13 +76,14 @@ typedef void(^QQApiLogBolock)(NSString *logStr);
/** \brief 所有在QQ及插件间发送的数据对象的根类。
*/
__attribute__((visibility("default"))) @interface QQApiObject : NSObject
-@property(nonatomic, retain) NSString* title; ///< 标题,最长128个字符
-@property(nonatomic, retain) NSString* description; ///<简要描述,最长512个字符
-@property(nonatomic, retain) NSString* universalLink; ///(>=3.3.7)支持第三方传入在互联开放平台注册的universallink
-@property(nonatomic, assign) uint64_t cflag;
+
+@property (nonatomic, copy) NSString *title; ///< 标题,最长128个字符
+@property (nonatomic, copy) NSString *description; ///<简要描述,最长512个字符
+@property (nonatomic, copy) NSString *universalLink; ///(>=3.3.7)支持第三方传入在互联开放平台注册的universallink
+@property (nonatomic, assign) uint64_t cflag;
//353新增两个字断给游戏侧使用,对齐微信sdk
-@property(nonatomic, retain) NSString* tagName;
-@property(nonatomic, retain) NSString* messageExt;
+@property (nonatomic, copy) NSString *tagName;
+@property (nonatomic, copy) NSString *messageExt;
/*
* 分享到QQ/TIM
* SDK根据是否安装对应客户端进行判断,判断顺序:QQ > TIM
@@ -93,8 +96,8 @@ __attribute__((visibility("default"))) @interface QQApiObject : NSObject
/** \brief 支持Ark的根类。
*/
__attribute__((visibility("default"))) @interface ArkObject : NSObject
-@property(nonatomic,retain) NSString* arkData; ///< 显示Ark所需的数据,json串,长度暂不限制
-@property(nonatomic,assign) QQApiObject* qqApiObject; ///<原有老版本的QQApiObject
+@property (nonatomic, copy) NSString *arkData; ///< 显示Ark所需的数据,json串,长度暂不限制
+@property (nonatomic,assign) QQApiObject* qqApiObject; ///<原有老版本的QQApiObject
- (id)initWithData:(NSString *)arkData qqApiObject:(QQApiObject*)qqApiObject;
+ (id)objectWithData:(NSString *)arkData qqApiObject:(QQApiObject*)qqApiObject;
@@ -103,24 +106,24 @@ __attribute__((visibility("default"))) @interface ArkObject : NSObject
#pragma mark QQ小程序
//分享小程序消息 - QQ 8.0.8
__attribute__((visibility("default"))) @interface QQApiMiniProgramObject : NSObject
-@property(nonatomic,retain) QQApiObject* qqApiObject; //原有老版本的QQApiObject
-@property(nonatomic,retain) NSString* miniAppID; //必填,小程序的AppId(注:必须在QQ互联平台中,将该小程序与分享的App绑定)
-@property(nonatomic,retain) NSString* miniPath; //必填,小程序的展示路径
-@property(nonatomic,retain) NSString* webpageUrl; //必填,兼容低版本的网页链接
-@property(nonatomic,assign) MiniProgramType miniprogramType; //非必填,小程序的类型,默认正式版(3),可选测试版(1)、预览版(4)
+@property (nonatomic, strong) QQApiObject* qqApiObject; //原有老版本的QQApiObject
+@property (nonatomic, copy) NSString *miniAppID; //必填,小程序的AppId(注:必须在QQ互联平台中,将该小程序与分享的App绑定)
+@property (nonatomic, copy) NSString *miniPath; //必填,小程序的展示路径
+@property (nonatomic, copy) NSString *webpageUrl; //必填,兼容低版本的网页链接
+@property (nonatomic,assign) MiniProgramType miniprogramType; //非必填,小程序的类型,默认正式版(3),可选测试版(1)、预览版(4)
@end
//唤起小程序 - QQ 8.1.8
__attribute__((visibility("default"))) @interface QQApiLaunchMiniProgramObject : QQApiObject
-@property(nonatomic,retain) NSString* miniAppID; //必填,小程序的AppId(注:必须在QQ互联平台中,将该小程序与分享的App绑定)
-@property(nonatomic,retain) NSString* miniPath; //小程序的展示路径,不填展示默认小程序首页
-@property(nonatomic,assign) MiniProgramType miniprogramType; //非必填,小程序的类型,默认正式版(3),可选测试版(1)、开发版(0)
+@property (nonatomic, copy) NSString *miniAppID; //必填,小程序的AppId(注:必须在QQ互联平台中,将该小程序与分享的App绑定)
+@property (nonatomic, copy) NSString *miniPath; //小程序的展示路径,不填展示默认小程序首页
+@property (nonatomic,assign) MiniProgramType miniprogramType; //非必填,小程序的类型,默认正式版(3),可选测试版(1)、开发版(0)
@end
//小程序唤起第三方 - SDK 3.3.9
__attribute__((visibility("default"))) @interface QQApiMiniProgramLaunchObject : QQApiObject
-@property(nonatomic,copy) NSString* appParameter; //小程序带来的数据,透传
-+ (instancetype)newWithAppParameter:(NSString*)parameter;
+@property (nonatomic, copy) NSString *appParameter; //小程序带来的数据,透传
++ (instancetype)newWithAppParameter:(NSString *)parameter;
@end
// QQApiResultObject
@@ -137,19 +140,20 @@ __attribute__((visibility("default"))) @interface QQApiMiniProgramLaunchObject :
*/
__attribute__((visibility("default"))) @interface QQApiResultObject : QQApiObject
-@property(nonatomic,retain) NSString* error; ///<错误
-@property(nonatomic,retain) NSString* errorDescription; ///<错误描述
-@property(nonatomic,retain) NSString* extendInfo; ///<扩展信息
+@property (nonatomic, copy) NSString *error; ///<错误
+@property (nonatomic, copy) NSString *errorDescription; ///<错误描述
+@property (nonatomic, copy) NSString *extendInfo; ///<扩展信息
+@property (nonatomic, copy) NSDictionary *otherInfo; ///<其他扩展信息
@end
// QQApiTextObject
/** \brief 文本对象
*/
@interface QQApiTextObject : QQApiObject
-@property(nonatomic,retain)NSString* text; ///<文本内容,必填,最长1536个字符
+@property (nonatomic, copy)NSString *text; ///<文本内容,必填,最长1536个字符
--(id)initWithText:(NSString*)text; ///<初始化方法
-+(id)objectWithText:(NSString*)text;///<工厂方法,获取一个QQApiTextObject对象.
+- (id)initWithText:(NSString *)text; ///<初始化方法
++ (id)objectWithText:(NSString *)text;///<工厂方法,获取一个QQApiTextObject对象.
@end
@@ -170,22 +174,24 @@ __attribute__((visibility("default"))) @interface QQApiURLObject : QQApiObject
URL地址所指向的目标类型.
@note 参见QQApi.h 中的 QQApiURLTargetType 定义.
*/
-@property(nonatomic)QQApiURLTargetType targetContentType;
+@property (nonatomic)QQApiURLTargetType targetContentType;
-@property(nonatomic,retain)NSURL* url; ///QQApiExtendObject实例
*/
-+ (id)objectWithData:(NSData*)data previewImageData:(NSData*)previewImageData title:(NSString*)title description:(NSString*)description;
++ (id)objectWithData:(NSData *)data previewImageData:(NSData *)previewImageData title:(NSString *)title description:(NSString *)description;
/**
helper方法获取一个autorelease的QQApiExtendObject
对象
@param data 数据内容
@@ -236,7 +242,7 @@ __attribute__((visibility("default"))) @interface QQApiURLObject : QQApiObject
@return
一个自动释放的QQApiExtendObject
实例
*/
-+ (id)objectWithData:(NSData*)data previewImageData:(NSData*)previewImageData title:(NSString*)title description:(NSString*)description imageDataArray:(NSArray*)imageDataArray;
++ (id)objectWithData:(NSData *)data previewImageData:(NSData *)previewImageData title:(NSString *)title description:(NSString *)description imageDataArray:(NSArray *)imageDataArray;
@end
@@ -271,9 +277,11 @@ __attribute__((visibility("default"))) @interface QQApiURLObject : QQApiObject
@"ret=-17&error_des=account diff"//账号不一致
*/
@interface QQApiVideoForQQAvatarObject : QQApiExtendObject
-@property(nonatomic, retain) NSString *assetURL;
+@property (nonatomic, copy) NSString *assetURL;
@end
+
+
//QQApiAuthObject 用于拉起手Q的授权详情页
@interface QQApiAuthObject : QQApiObject
@end
@@ -284,13 +292,13 @@ __attribute__((visibility("default"))) @interface QQApiURLObject : QQApiObject
*/
@interface QQApiImageArrayForFaceCollectionObject : QQApiObject
-@property(nonatomic,retain) NSArray* imageDataArray;///图片数组
+@property (nonatomic, copy) NSArray *imageDataArray;///图片数组
/**
初始化方法
@param imageDataArray 图片数组
*/
-- (id)initWithImageArrayData:(NSArray*)imageDataArray;
+- (id)initWithImageArrayData:(NSArray *)imageDataArray;
/**
helper方法获取一个autorelease的QQApiObject
对象
@param imageDataArray 发送的多张图片队列
@@ -307,8 +315,8 @@ __attribute__((visibility("default"))) @interface QQApiURLObject : QQApiObject
*/
@interface QQApiImageArrayForQZoneObject : QQApiObject
-@property(nonatomic,retain) NSArray* imageDataArray;///图片数组
-@property(nonatomic,retain) NSDictionary* extMap; // 扩展字段
+@property (nonatomic, copy) NSArray *imageDataArray;///图片数组
+@property (nonatomic, copy) NSDictionary *extMap; // 扩展字段
/**
初始化方法
@@ -316,7 +324,7 @@ __attribute__((visibility("default"))) @interface QQApiURLObject : QQApiObject
@param title 写说说的内容,可以为空
@param extMap 扩展字段
*/
-- (id)initWithImageArrayData:(NSArray*)imageDataArray title:(NSString*)title extMap:(NSDictionary *)extMap;
+- (id)initWithImageArrayData:(NSArray *)imageDataArray title:(NSString *)title extMap:(NSDictionary *)extMap;
/**
helper方法获取一个autorelease的QQApiExtendObject
对象
@@ -326,7 +334,7 @@ __attribute__((visibility("default"))) @interface QQApiURLObject : QQApiObject
@return
一个自动释放的QQApiExtendObject
实例
*/
-+ (id)objectWithimageDataArray:(NSArray*)imageDataArray title:(NSString*)title extMap:(NSDictionary *)extMap;
++ (id)objectWithimageDataArray:(NSArray *)imageDataArray title:(NSString *)title extMap:(NSDictionary *)extMap;
@end
@@ -339,17 +347,17 @@ __attribute__((visibility("default"))) @interface QQApiURLObject : QQApiObject
*/
@interface QQApiVideoForQZoneObject : QQApiObject
-@property(nonatomic, retain) NSString *assetURL;
-@property(nonatomic,retain) NSDictionary* extMap; // 扩展字段
-@property(nonatomic,retain) NSData* videoData;
+@property (nonatomic, copy) NSString *assetURL;
+@property (nonatomic, copy) NSDictionary *extMap; // 扩展字段
+@property (nonatomic, copy) NSData *videoData;
-- (id)initWithAssetURL:(NSString*)assetURL title:(NSString*)title extMap:(NSDictionary *)extMap;
+- (id)initWithAssetURL:(NSString *)assetURL title:(NSString *)title extMap:(NSDictionary *)extMap;
-+ (id)objectWithAssetURL:(NSString*)assetURL title:(NSString*)title extMap:(NSDictionary *)extMap;
++ (id)objectWithAssetURL:(NSString *)assetURL title:(NSString *)title extMap:(NSDictionary *)extMap;
-- (id)initWithVideoData:(NSData*)videoData title:(NSString*)title extMap:(NSDictionary *)extMap;
+- (id)initWithVideoData:(NSData *)videoData title:(NSString *)title extMap:(NSDictionary *)extMap;
-+ (id)objectWithVideoData:(NSData*)videoData title:(NSString*)title extMap:(NSDictionary *)extMap;
++ (id)objectWithVideoData:(NSData *)videoData title:(NSString *)title extMap:(NSDictionary *)extMap;
@end
@@ -360,7 +368,7 @@ __attribute__((visibility("default"))) @interface QQApiURLObject : QQApiObject
*/
@interface QQApiWebImageObject : QQApiObject
-@property(nonatomic, retain) NSURL *previewImageURL; ///<预览图像URL
+@property (nonatomic, strong) NSURL *previewImageURL; ///<预览图像URL
/**
初始化方法
@@ -368,7 +376,7 @@ __attribute__((visibility("default"))) @interface QQApiURLObject : QQApiObject
@param title 标题
@param description 此对象,分享的描述
*/
-- (id)initWithPreviewImageURL:(NSURL*)previewImageURL title:(NSString*)title description:(NSString*)description;
+- (id)initWithPreviewImageURL:(NSURL *)previewImageURL title:(NSString *)title description:(NSString *)description;
/**
helper方法获取一个autorelease的QQApiWebImageObject
对象
@@ -376,7 +384,7 @@ __attribute__((visibility("default"))) @interface QQApiURLObject : QQApiObject
@param title 标题
@param description 此对象,分享的描述
*/
-+ (id)objectWithPreviewImageURL:(NSURL*)previewImageURL title:(NSString*)title description:(NSString*)description;
++ (id)objectWithPreviewImageURL:(NSURL *)previewImageURL title:(NSString *)title description:(NSString *)description;
@end
@@ -385,11 +393,12 @@ __attribute__((visibility("default"))) @interface QQApiURLObject : QQApiObject
/** @brief 本地文件对象(暂只支持分享到手机QQ数据线功能)
用于分享文件内容的对象,是一个指定为文件类型的QQApiExtendObject
*/
-@interface QQApiFileObject : QQApiExtendObject
-{
- NSString* _fileName;
+@interface QQApiFileObject : QQApiExtendObject {
+ NSString *_fileName;
}
-@property(nonatomic, retain)NSString* fileName;
+
+@property (nonatomic, copy)NSString *fileName;
+
@end
// QQApiAudioObject
@@ -398,7 +407,7 @@ __attribute__((visibility("default"))) @interface QQApiURLObject : QQApiObject
*/
@interface QQApiAudioObject : QQApiURLObject
-@property (nonatomic, retain) NSURL *flashURL; ///<音频URL地址,最长512个字符
+@property (nonatomic, strong) NSURL *flashURL; ///<音频URL地址,最长512个字符
/**
获取一个autorelease的QQApiAudioObject
@@ -408,7 +417,7 @@ __attribute__((visibility("default"))) @interface QQApiURLObject : QQApiObject
@param data 分享内容的预览图像
@note 如果url为空,调用QQApi#sendMessage:
时将返回FALSE
*/
-+(id)objectWithURL:(NSURL*)url title:(NSString*)title description:(NSString*)description previewImageData:(NSData*)data;
++ (id)objectWithURL:(NSURL *)url title:(NSString *)title description:(NSString *)description previewImageData:(NSData *)data;
/**
获取一个autorelease的QQApiAudioObject
@@ -418,7 +427,7 @@ __attribute__((visibility("default"))) @interface QQApiURLObject : QQApiObject
@param previewURL 分享内容的预览图像URL
@note 如果url为空,调用QQApi#sendMessage:
时将返回FALSE
*/
-+(id)objectWithURL:(NSURL*)url title:(NSString*)title description:(NSString*)description previewImageURL:(NSURL*)previewURL;
++ (id)objectWithURL:(NSURL *)url title:(NSString *)title description:(NSString *)description previewImageURL:(NSURL *)previewURL;
@end
@@ -431,7 +440,7 @@ __attribute__((visibility("default"))) @interface QQApiURLObject : QQApiObject
*/
@interface QQApiVideoObject : QQApiURLObject
-@property (nonatomic, retain) NSURL *flashURL; ///<视频URL地址,最长512个字符
+@property (nonatomic, strong) NSURL *flashURL; ///<视频URL地址,最长512个字符
/**
获取一个autorelease的QQApiVideoObject
@@ -441,7 +450,7 @@ __attribute__((visibility("default"))) @interface QQApiURLObject : QQApiObject
@param data 分享内容的预览图像
@note 如果url为空,调用QQApi#sendMessage:
时将返回FALSE
*/
-+(id)objectWithURL:(NSURL*)url title:(NSString*)title description:(NSString*)description previewImageData:(NSData*)data;
++ (id)objectWithURL:(NSURL *)url title:(NSString *)title description:(NSString *)description previewImageData:(NSData *)data;
/**
获取一个autorelease的QQApiVideoObject
@param url 视频内容的目标URL
@@ -450,7 +459,7 @@ __attribute__((visibility("default"))) @interface QQApiURLObject : QQApiObject
@param previewURL 分享内容的预览图像URL
@note 如果url为空,调用QQApi#sendMessage:
时将返回FALSE
*/
-+(id)objectWithURL:(NSURL*)url title:(NSString*)title description:(NSString*)description previewImageURL:(NSURL*)previewURL;
++ (id)objectWithURL:(NSURL *)url title:(NSString *)title description:(NSString *)description previewImageURL:(NSURL *)previewURL;
@end
@@ -467,7 +476,7 @@ __attribute__((visibility("default"))) @interface QQApiURLObject : QQApiObject
@param data 分享内容的预览图像
@note 如果url为空,调用QQApi#sendMessage:
时将返回FALSE
*/
-+(id)objectWithURL:(NSURL*)url title:(NSString*)title description:(NSString*)description previewImageData:(NSData*)data;
++ (id)objectWithURL:(NSURL *)url title:(NSString *)title description:(NSString *)description previewImageData:(NSData *)data;
/**
获取一个autorelease的QQApiNewsObject
@param url 视频内容的目标URL
@@ -476,7 +485,7 @@ __attribute__((visibility("default"))) @interface QQApiURLObject : QQApiObject
@param previewURL 分享内容的预览图像URL
@note 如果url为空,调用QQApi#sendMessage:
时将返回FALSE
*/
-+(id)objectWithURL:(NSURL*)url title:(NSString*)title description:(NSString*)description previewImageURL:(NSURL*)previewURL;
++ (id)objectWithURL:(NSURL *)url title:(NSString *)title description:(NSString *)description previewImageURL:(NSURL *)previewURL;
@end
@@ -489,19 +498,19 @@ __attribute__((visibility("default"))) @interface QQApiURLObject : QQApiObject
/**
预定义的界面布局类型
*/
-@property(nonatomic,assign) unsigned int layoutType;
-@property(nonatomic,assign) NSData* previewImageData;///<预览图
-@property(nonatomic,retain) NSArray* textArray;///<文本列表
-@property(nonatomic,retain) NSArray* pictureDataArray;///<图片列表
-+(id)objectWithLayoutType:(int)layoutType textArray:(NSArray*)textArray pictureArray:(NSArray*)pictureArray previewImageData:(NSData*)data;
+@property (nonatomic,assign) unsigned int layoutType;
+@property (nonatomic, copy) NSData *previewImageData;///<预览图
+@property (nonatomic, copy) NSArray *textArray;///<文本列表
+@property (nonatomic, copy) NSArray *pictureDataArray;///<图片列表
++ (id)objectWithLayoutType:(int)layoutType textArray:(NSArray *)textArray pictureArray:(NSArray *)pictureArray previewImageData:(NSData *)data;
/**
将一个NSDictionary对象转化为QQApiCommomContentObject,如果无法转换,则返回空
*/
-+(id)objectWithDictionary:(NSDictionary*)dic;
--(NSDictionary*)toDictionary;
++ (id)objectWithDictionary:(NSDictionary *)dic;
+- (NSDictionary *)toDictionary;
@end
-// QQApiExtraServiceObject;
+// QQApiExtraServiceObject; 通用业务消息处理类(旧版,后续使用QQApiCommonServiceObject)
/**
@brief OpenSDK扩展支持的服务,通用接口,后续会扩充能力
@param serviceID [必选] 扩展支持的服务类型ID,参考官方文档说明
@@ -511,26 +520,52 @@ __attribute__((visibility("default"))) @interface QQApiURLObject : QQApiObject
@note 该接口的使用须先登录
*/
@interface QQApiExtraServiceObject : QQApiObject
-@property (nonatomic,retain) NSString* serviceID;
-@property (nonatomic,retain) NSString* openID;
-@property (nonatomic,retain) NSString* toUin;
-@property (nonatomic,retain) NSDictionary* extraInfo;
+@property (nonatomic, copy) NSString *serviceID;
+@property (nonatomic, copy) NSString *openID;
+@property (nonatomic, copy) NSString *toUin;
+@property (nonatomic, copy) NSDictionary *extraInfo;
- (id)initWithOpenID:(NSString *)openID serviceID:(NSString *)serviceID;
+ (id)objecWithOpenID:(NSString *)openID serviceID:(NSString *)serviceID;
@end
+/**
+ * QQApiCommonServiceObject; 通用业务消息处理类(新),可以适用所有的需要通过互联SDK发消息给手Q的业务去处理。
+ * 使用前需要申请serviceID,每个业务功能有个对应的serviceID
+ */
+@interface QQApiCommonServiceObject : QQApiObject
+
+// [必选] 授权登录后对该用户的唯一标识
+@property (nonatomic, copy) NSString *openID;
+
+// [必选] 扩展支持的服务类型ID,参考官方文档说明
+@property (nonatomic, copy) NSString *serviceID;
+
+// [可选] 扩展字段,由调用方跟具体的业务方协定具体的字段
+@property (nonatomic, copy) NSDictionary *extendInfo;
+
+- (instancetype)initWithOpenID:(NSString *)openID
+ serviceID:(NSString *)serviceID
+ extendInfo:(NSDictionary *)extendInfo;
+
++ (instancetype)objecWithOpenID:(NSString *)openID
+ serviceID:(NSString *)serviceID
+ extendInfo:(NSDictionary *)extendInfo;
+
+@end
+
+
////////////////////////////////////////////////////////////////////////////////////////////////////////////
// Ad item object definition
////////////////////////////////////////////////////////////////////////////////////////////////////////////
/** @brief 广告数据对象
*/
@interface QQApiAdItem : NSObject
-@property(nonatomic,retain) NSString* title; ///<名称
-@property(nonatomic,retain) NSString* description;///<描述
-@property(nonatomic,retain) NSData* imageData;///<广告图片
-@property(nonatomic,retain) NSURL* target;///<广告目标链接
+@property (nonatomic, copy) NSString *title; ///<名称
+@property (nonatomic, copy) NSString *description;///<描述
+@property (nonatomic, copy) NSData *imageData;///<广告图片
+@property (nonatomic, strong) NSURL *target;///<广告目标链接
@end
@@ -540,20 +575,20 @@ __attribute__((visibility("default"))) @interface QQApiURLObject : QQApiObject
QQApi请求消息类型
*/
typedef NS_ENUM(NSUInteger, QQApiInterfaceReqType) {
- EGETMESSAGEFROMQQREQTYPE = 0, ///< 手Q -> 第三方应用,请求第三方应用向手Q发送消息
- ESENDMESSAGETOQQREQTYPE = 1, ///< 第三方应用 -> 手Q,第三方应用向手Q分享消息
- ESHOWMESSAGEFROMQQREQTYPE = 2, ///< 手Q -> 第三方应用,请求第三方应用展现消息中的数据
- ESENDMESSAGEARKTOQQREQTYPE = 3, ///< 第三方应用 -> 手Q,第三方应用向手Q分享Ark消息
- ESENDMESSAGE_MINI_TOQQREQTYPE = 4 ///< 第三方应用 -> 手Q,第三方应用向手Q分享小程序消息
+ EGETMESSAGEFROMQQREQTYPE = 0, /// < 手Q -> 第三方应用,请求第三方应用向手Q发送消息
+ ESENDMESSAGETOQQREQTYPE = 1, /// < 第三方应用 -> 手Q,第三方应用向手Q分享消息
+ ESHOWMESSAGEFROMQQREQTYPE = 2, /// < 手Q -> 第三方应用,请求第三方应用展现消息中的数据
+ ESENDMESSAGEARKTOQQREQTYPE = 3, /// < 第三方应用 -> 手Q,第三方应用向手Q分享Ark消息
+ ESENDMESSAGE_MINI_TOQQREQTYPE = 4 /// < 第三方应用 -> 手Q,第三方应用向手Q分享小程序消息
};
/**
QQApi应答消息类型
*/
typedef NS_ENUM(NSUInteger, QQApiInterfaceRespType) {
- ESHOWMESSAGEFROMQQRESPTYPE = 0, ///< 第三方应用 -> 手Q,第三方应用应答消息展现结果
- EGETMESSAGEFROMQQRESPTYPE = 1, ///< 第三方应用 -> 手Q,第三方应用回应发往手Q的消息
- ESENDMESSAGETOQQRESPTYPE = 2 ///< 手Q -> 第三方应用,手Q应答处理分享消息的结果
+ ESHOWMESSAGEFROMQQRESPTYPE = 0, /// < 第三方应用 -> 手Q,第三方应用应答消息展现结果
+ EGETMESSAGEFROMQQRESPTYPE = 1, /// < 第三方应用 -> 手Q,第三方应用回应发往手Q的消息
+ ESENDMESSAGETOQQRESPTYPE = 2 /// < 手Q -> 第三方应用,手Q应答处理分享消息的结果
};
/**
@@ -572,16 +607,16 @@ typedef NS_ENUM(NSUInteger, QQApiInterfaceRespType) {
@interface QQBaseResp : NSObject
/** 请求处理结果 */
-@property (nonatomic, copy) NSString* result;
+@property (nonatomic, copy) NSString *result;
/** 具体错误描述信息 */
-@property (nonatomic, copy) NSString* errorDescription;
+@property (nonatomic, copy) NSString *errorDescription;
/** 应答消息类型,参见\ref QQApiInterfaceRespType */
@property (nonatomic, assign) int type;
/** 扩展信息 */
-@property (nonatomic, assign) NSString* extendInfo;
+@property (nonatomic, copy) NSString *extendInfo;
@end
@@ -617,14 +652,14 @@ typedef NS_ENUM(NSUInteger, QQApiInterfaceRespType) {
* @param miniMessage 小程序实例对象
* @return 消息请求实例
*/
-+(SendMessageToQQReq*) reqWithMiniContent:(QQApiMiniProgramObject *)miniMessage;
++ (SendMessageToQQReq *)reqWithMiniContent:(QQApiMiniProgramObject *)miniMessage;
/** 具体分享消息 */
-@property (nonatomic, retain) QQApiObject *message;
+@property (nonatomic, strong) QQApiObject *apiObject;
/** 支持Ark的具体分享消息 */
-@property (nonatomic, retain) ArkObject *arkMessage;
+@property (nonatomic, strong) ArkObject *arkObject;
/** 支持小程序的具体分享消息 */
-@property (nonatomic, retain) QQApiMiniProgramObject *miniMessage;
+@property (nonatomic, strong) QQApiMiniProgramObject *miniProgramObject;
@end
/**
@@ -632,6 +667,9 @@ typedef NS_ENUM(NSUInteger, QQApiInterfaceRespType) {
*/
@interface SendMessageToQQResp : QQBaseResp
+/** 其他扩展信息 */
+@property (nonatomic, copy) NSDictionary *otherInfo;
+
/**
创建一个SendMessageToQQResp应答实例
\param result 请求处理结果
@@ -639,7 +677,9 @@ typedef NS_ENUM(NSUInteger, QQApiInterfaceRespType) {
\param extendInfo 扩展信息
\return 新创建的SendMessageToQQResp应答实例
*/
-+ (SendMessageToQQResp *)respWithResult:(NSString *)result errorDescription:(NSString *)errDesp extendInfo:(NSString*)extendInfo;
++ (SendMessageToQQResp *)respWithResult:(NSString *)result errorDescription:(NSString *)errDesp extendInfo:(NSString *)extendInfo;
+
++ (SendMessageToQQResp *) respWithResult:(NSString *)result errorDescription:(NSString *)errDesp extendInfo:(NSString *)extendInfo otherInfo:(NSDictionary *)otherInfo;
@end
@@ -656,7 +696,57 @@ typedef NS_ENUM(NSUInteger, QQApiInterfaceRespType) {
+ (ShowMessageFromQQReq *)reqWithContent:(QQApiObject *)message;
/** 具体待展现消息 */
-@property (nonatomic, retain) QQApiObject *message;
+@property (nonatomic, strong) QQApiObject *message;
+
+@end
+
+#pragma mark --一键加群&建群&解绑群
+// QQApiThirdAppBindGroupObject
+/** \brief 第三方app绑定群
+ */
+@interface QQApiThirdAppBindGroupObject : QQApiObject
+
+@property (nonatomic, copy) NSString *accessToken;
+@property (nonatomic, copy) NSString *payToken;
+@property (nonatomic, copy) NSString *pfkey;
+@property (nonatomic, copy) NSString *unionID;
+@property (nonatomic, copy) NSString *appDisplayName;
+
+- (id)initWithAccessToken:(NSString *)accessToken payToken:(NSString *)payToken pfkey:(NSString *)pfkey unionID:(NSString *)unionID appDisplayName:(NSString *)appDisplayName; ///<初始化方法
++ (id)objectWithAccessToken:(NSString *)accessToken payToken:(NSString *)payToken pfkey:(NSString *)pfkey unionID:(NSString *)unionID appDisplayName:(NSString *)appDisplayName; ///<工厂方法,获取一个QQApiThirdAppBindGroupObject对象.
+
+@end
+
+// QQApiThirdAppJoinGroupObject
+/** \brief 第三方app加入群
+ */
+@interface QQApiThirdAppJoinGroupObject : QQApiObject
+
+@property (nonatomic, copy) NSString *accessToken;
+@property (nonatomic, copy) NSString *payToken;
+@property (nonatomic, copy) NSString *pfkey;
+@property (nonatomic, copy) NSString *unionID;
+
+- (id)initWithAccessToken:(NSString *)accessToken payToken:(NSString *)payToken pfkey:(NSString *)pfkey unionID:(NSString *)unionID; ///<初始化方法
+
++ (id)objectWithAccessToken:(NSString *)accessToken payToken:(NSString *)payToken pfkey:(NSString *)pfkey unionID:(NSString *)unionID; ///<工厂方法,获取一个QQApiThirdAppJoinGroupObject对象.
+
+@end
+
+// QQApiThirdAppUnBindGroupObject
+/** \brief 第三方app解绑群
+ */
+@interface QQApiThirdAppUnBindGroupObject : QQApiObject
+
+@property (nonatomic, copy) NSString *accessToken;
+@property (nonatomic, copy) NSString *openId;
+@property (nonatomic, copy) NSString *payToken;
+@property (nonatomic, copy) NSString *pfkey;
+@property (nonatomic, copy) NSString *unionID;
+
+- (id)initWithAccessToken:(NSString *)accessToken payToken:(NSString *)payToken pfkey:(NSString *)pfkey unionID:(NSString *)unionID openId:(NSString *)openId appId:(NSString *)appId; ///<初始化方法
+
++ (id)objectWithAccessToken:(NSString *)accessToken payToken:(NSString *)payToken pfkey:(NSString *)pfkey unionID:(NSString *)unionID openId:(NSString *)openId appId:(NSString *)appId; ///<工厂方法,获取一个QQApiThirdAppBindGroupObject对象.
@end
diff --git a/ios/Libraries/TencentOpenAPI.framework/Headers/TencentOAuth.h b/ios/Libraries/TencentOpenAPI.framework/Headers/TencentOAuth.h
index 982edaa..c09af8b 100644
--- a/ios/Libraries/TencentOpenAPI.framework/Headers/TencentOAuth.h
+++ b/ios/Libraries/TencentOpenAPI.framework/Headers/TencentOAuth.h
@@ -7,7 +7,7 @@
///
#import
-#import "sdkdef.h"
+#import "SDKDef.h"
@protocol TencentSessionDelegate;
@protocol TencentLoginDelegate;
@@ -37,57 +37,58 @@ typedef NS_ENUM(NSUInteger, TencentAuthMode) {
*/
@interface TencentOAuth : NSObject
{
- NSMutableDictionary* _apiRequests;
- NSString* _accessToken;
- NSDate* _expirationDate;
+ NSMutableDictionary *_apiRequests;
+ NSString *_accessToken;
+ NSDate *_expirationDate;
id _sessionDelegate;
- NSString* _localAppId;
- NSString* _openId;
- NSString* _redirectURI;
- NSArray* _permissions;
+ NSString *_localAppId;
+ NSString *_openId;
+ NSString *_redirectURI;
+ NSArray *_permissions;
}
/** Access Token凭证,用于后续访问各开放接口 */
-@property(nonatomic, copy) NSString* accessToken;
+@property(nonatomic, copy) NSString *accessToken;
/** Access Token的失效期 */
-@property(nonatomic, copy) NSDate* expirationDate;
+@property(nonatomic, copy) NSDate *expirationDate;
/** 已实现的开放接口的回调委托对象 */
-@property(nonatomic, assign) id sessionDelegate;
+@property(nonatomic, weak) id sessionDelegate;
/** 第三方应用在开发过程中设置的URLSchema,用于浏览器登录后后跳到第三方应用 */
-@property(nonatomic, copy) NSString* localAppId;
+@property(nonatomic, copy) NSString *localAppId;
/** 用户授权登录后对该用户的唯一标识 */
-@property(nonatomic, copy) NSString* openId;
+@property(nonatomic, copy) NSString *openId;
/** 用户登录成功过后的跳转页面地址 */
-@property(nonatomic, copy) NSString* redirectURI;
+@property(nonatomic, copy) NSString *redirectURI;
/** 第三方应用在互联开放平台申请的appID */
-@property(nonatomic, retain) NSString* appId;
+@property(nonatomic, retain) NSString *appId;
/** 第三方应用在互联开放平台注册的UniversalLink */
-@property(nonatomic, retain) NSString* universalLink;
+@property(nonatomic, retain) NSString *universalLink;
/** 主要是互娱的游戏设置uin */
-@property(nonatomic, retain) NSString* uin;
+@property(nonatomic, retain) NSString *uin;
/** 主要是互娱的游戏设置鉴定票据 */
-@property(nonatomic, retain) NSString* skey;
+@property(nonatomic, retain) NSString *skey;
/** 登陆透传的数据 */
-@property(nonatomic, copy) NSDictionary* passData;
+@property(nonatomic, copy) NSDictionary *passData;
/** 授权方式(Client Side Token或者Server Side Code) */
@property(nonatomic, assign) TencentAuthMode authMode;
/** union id */
-@property(nonatomic, retain) NSString* unionid;
+@property(nonatomic, retain) NSString *unionid;
/** 第三方在授权登录/分享 时选择 QQ,还是TIM 。在授权前一定要指定其中一个类型*/
@property(nonatomic, assign) TencentAuthShareType authShareType;
+
/**
* 获取上次登录得到的token
*
@@ -122,14 +123,14 @@ typedef NS_ENUM(NSUInteger, TencentAuthMode) {
* \return 返回sdk版本号
**/
-+ (NSString*)sdkVersion;
++ (NSString *)sdkVersion;
/**
* 用来获得当前sdk的小版本号
* \return 返回sdk小版本号
**/
-+ (NSString*)sdkSubVersion;
++ (NSString *)sdkSubVersion;
/**
* 用来获得当前sdk的是否精简版
@@ -191,6 +192,21 @@ typedef NS_ENUM(NSUInteger, TencentAuthMode) {
universalLink:(NSString *)universalLink
delegate:(id)delegate;
+/**
+ * 设置用户是否已经授权同意授权隐私协议,在主体应用中,用户同意授权隐私协议后再初始化互联SDK,默认未同意授权
+ * 注意:如未同意授权隐私协议,则互联SDK的所有功能都无法使用,包括初始化!!!
+ * 从3.5.7版本开始支持该方法
+ *
+ * @param isAgreedAuthorization 是否已经授权,isAgreedAuthorization=YES, 表示已经同意授权;isAgreedAuthorization=NO,表示未同意授权,互联SDK的所有功能都无法使用
+ */
++ (void)setIsUserAgreedAuthorization:(BOOL)isUserAgreedAuthorization;
+
+/**
+ * 获取当前用户是否已经同意授权隐私协议
+ * 从3.5.7版本开始支持该方法
+ */
++ (BOOL)isUserAgreedAuthorization;
+
/**
* 判断用户手机上是否安装手机QQ
* \return YES:安装 NO:没安装
diff --git a/ios/Libraries/TencentOpenAPI.framework/Headers/TencentOpenApiUmbrellaHeader.h b/ios/Libraries/TencentOpenAPI.framework/Headers/TencentOpenApiUmbrellaHeader.h
index 6d6ad55..6a8a10e 100644
--- a/ios/Libraries/TencentOpenAPI.framework/Headers/TencentOpenApiUmbrellaHeader.h
+++ b/ios/Libraries/TencentOpenAPI.framework/Headers/TencentOpenApiUmbrellaHeader.h
@@ -16,7 +16,7 @@ FOUNDATION_EXPORT const unsigned char StaticLibraryModuleVersionString[];
#import "QQApiInterface.h"
#import "QQApiInterfaceObject.h"
-#import "sdkdef.h"
+#import "SDKDef.h"
#import "TencentOAuth.h"
diff --git a/ios/Libraries/TencentOpenAPI.framework/Headers/sdkdef.h b/ios/Libraries/TencentOpenAPI.framework/Headers/sdkdef.h
index 651d278..72d9a95 100644
--- a/ios/Libraries/TencentOpenAPI.framework/Headers/sdkdef.h
+++ b/ios/Libraries/TencentOpenAPI.framework/Headers/sdkdef.h
@@ -248,6 +248,9 @@ FOUNDATION_EXTERN NSString * const TCOpenSDKErrorMsgWebPage;
/** 设置头像图片过大 */
FOUNDATION_EXTERN NSString * const TCOpenSDKErrorMsgUserHeadPicLarge;
+/** 用户未同意授权隐私协议 */
+FOUNDATION_EXPORT NSString * const TCOpenSDKErrorMsgUserNotAgreedAuthorization;
+
///@}
/**
diff --git a/ios/Libraries/TencentOpenAPI.framework/TencentOpenAPI b/ios/Libraries/TencentOpenAPI.framework/TencentOpenAPI
index 02c8fc4..56ca89c 100644
Binary files a/ios/Libraries/TencentOpenAPI.framework/TencentOpenAPI and b/ios/Libraries/TencentOpenAPI.framework/TencentOpenAPI differ
diff --git a/ios/tencent_kit.podspec b/ios/tencent_kit.podspec
index 497ff6e..6ceb062 100644
--- a/ios/tencent_kit.podspec
+++ b/ios/tencent_kit.podspec
@@ -18,7 +18,7 @@ A powerful Flutter plugin allowing developers to auth/share with natvie Android
s.dependency 'Flutter'
s.platform = :ios, '8.0'
- # v3.5.3
+ # v3.5.10
s.subspec 'vendor' do |sp|
sp.vendored_frameworks = 'Libraries/*.framework'
sp.frameworks = 'Security', 'SystemConfiguration', 'CoreGraphics', 'CoreTelephony', 'WebKit'
diff --git a/lib/src/tencent.dart b/lib/src/tencent.dart
index 73da62b..a39fc64 100644
--- a/lib/src/tencent.dart
+++ b/lib/src/tencent.dart
@@ -43,26 +43,35 @@ class Tencent {
static const String _SCHEME_FILE = 'file';
- late final MethodChannel _channel =
- const MethodChannel('v7lin.github.io/tencent_kit')
- ..setMethodCallHandler(_handleMethod);
+ late final MethodChannel _channel = const MethodChannel('v7lin.github.io/tencent_kit')..setMethodCallHandler(_handleMethod);
- final StreamController _respStreamController =
- StreamController.broadcast();
+ final StreamController _respStreamController = StreamController.broadcast();
Future _handleMethod(MethodCall call) async {
switch (call.method) {
case _METHOD_ONLOGINRESP:
- _respStreamController.add(LoginResp.fromJson(
- (call.arguments as Map).cast()));
+ _respStreamController.add(LoginResp.fromJson((call.arguments as Map).cast()));
break;
case _METHOD_ONSHARERESP:
- _respStreamController.add(ShareMsgResp.fromJson(
- (call.arguments as Map).cast()));
+ _respStreamController.add(ShareMsgResp.fromJson((call.arguments as Map).cast()));
break;
}
}
+ /// 设置是否已授权获取设备信息/是否同意隐私协议
+ Future setIsPermissionGranted({
+ required bool granted,
+ String? buildModel /* android.os.Build.MODEL */,
+ }) {
+ return _channel.invokeMethod(
+ 'setIsPermissionGranted',
+ {
+ 'granted': granted,
+ if (buildModel?.isNotEmpty ?? false) 'build_model': buildModel,
+ },
+ );
+ }
+
/// 向 Open_SDK 注册
Future registerApp({
required String appId,
@@ -72,22 +81,7 @@ class Tencent {
_METHOD_REGISTERAPP,
{
_ARGUMENT_KEY_APPID: appId,
- if (universalLink?.isNotEmpty ?? false)
- _ARGUMENT_KEY_UNIVERSALLINK: universalLink,
- },
- );
- }
-
- /// 设置是否已授权获取设备信息
- Future setIsPermissionGranted({
- required bool granted,
- String? buildModel,
- }) {
- return _channel.invokeMethod(
- 'setIsPermissionGranted',
- {
- 'granted': granted,
- if (buildModel?.isNotEmpty ?? false) 'build_model': buildModel,
+ if (universalLink?.isNotEmpty ?? false) _ARGUMENT_KEY_UNIVERSALLINK: universalLink,
},
);
}
@@ -133,18 +127,14 @@ class Tencent {
}) {
assert(scene == TencentScene.SCENE_QZONE);
assert((summary?.isNotEmpty ?? false) ||
- ((imageUris?.isNotEmpty ?? false) &&
- imageUris!
- .every((Uri element) => element.isScheme(_SCHEME_FILE))) ||
+ ((imageUris?.isNotEmpty ?? false) && imageUris!.every((Uri element) => element.isScheme(_SCHEME_FILE))) ||
(videoUri != null && videoUri.isScheme(_SCHEME_FILE)));
return _channel.invokeMethod(
_METHOD_SHAREMOOD,
{
_ARGUMENT_KEY_SCENE: scene,
if (summary?.isNotEmpty ?? false) _ARGUMENT_KEY_SUMMARY: summary,
- if (imageUris?.isNotEmpty ?? false)
- _ARGUMENT_KEY_IMAGEURIS:
- imageUris!.map((Uri imageUri) => imageUri.toString()).toList(),
+ if (imageUris?.isNotEmpty ?? false) _ARGUMENT_KEY_IMAGEURIS: imageUris!.map((Uri imageUri) => imageUri.toString()).toList(),
if (videoUri != null) _ARGUMENT_KEY_VIDEOURI: videoUri.toString(),
},
);
diff --git a/pubspec.yaml b/pubspec.yaml
index ac74a4f..345ed8b 100644
--- a/pubspec.yaml
+++ b/pubspec.yaml
@@ -1,6 +1,6 @@
name: tencent_kit
description: A powerful Flutter plugin allowing developers to auth/share with natvie Android & iOS Tencent SDKs.
-version: 3.0.0
+version: 3.1.0
# author: v7lin
homepage: https://github.com/v7lin/fake_tencent