mirror of
https://github.com/RxReader/tencent_kit.git
synced 2025-05-21 09:16:31 +08:00
升级 1.1.0
This commit is contained in:
@ -1,3 +1,8 @@
|
|||||||
|
## 1.1.0 - 2020.06.13
|
||||||
|
|
||||||
|
* 升级 V2 插件
|
||||||
|
* 升级 Android/iOS SDK
|
||||||
|
|
||||||
## 1.0.4 - 2019.12.16
|
## 1.0.4 - 2019.12.16
|
||||||
|
|
||||||
* 适配 Android Q 本地分享适配(别问为什么,腾讯有毒!)
|
* 适配 Android Q 本地分享适配(别问为什么,腾讯有毒!)
|
||||||
|
@ -75,7 +75,8 @@ class _HomeState extends State<Home> {
|
|||||||
ListTile(
|
ListTile(
|
||||||
title: const Text('环境检查'),
|
title: const Text('环境检查'),
|
||||||
onTap: () async {
|
onTap: () async {
|
||||||
String content = 'tencent: ${await _tencent.isInstalled()}';
|
String content =
|
||||||
|
'QQ install: ${await _tencent.isQQInstalled()}\nTIM install: ${await _tencent.isTIMInstalled()}';
|
||||||
_showTips('环境检查', content);
|
_showTips('环境检查', content);
|
||||||
},
|
},
|
||||||
),
|
),
|
||||||
@ -139,7 +140,7 @@ class _HomeState extends State<Home> {
|
|||||||
title: const Text('文本分享'),
|
title: const Text('文本分享'),
|
||||||
onTap: () {
|
onTap: () {
|
||||||
_tencent.shareText(
|
_tencent.shareText(
|
||||||
scene: TencentScene.SCENE_QZONE,
|
scene: TencentScene.SCENE_QQ,
|
||||||
summary: '分享测试',
|
summary: '分享测试',
|
||||||
);
|
);
|
||||||
},
|
},
|
||||||
|
@ -155,4 +155,20 @@ typedef void (^sendResultBlock)(NSDictionary *result);
|
|||||||
\return iPhoneTIM下载地址
|
\return iPhoneTIM下载地址
|
||||||
*/
|
*/
|
||||||
+ (NSString *)getTIMInstallUrl;
|
+ (NSString *)getTIMInstallUrl;
|
||||||
|
|
||||||
|
#pragma mark - Log
|
||||||
|
/*! @brief 调用此函数可以导出QQSDK的Log到第三方中,用于定位问题
|
||||||
|
|
||||||
|
注意1:SDK会强引用这个block,注意不要导致内存泄漏,注意不要导致内存泄漏
|
||||||
|
注意2:调用过一次startLog by block之后,如果再调用一次任意方式的startLoad,会释放上一次logBlock,不再回调上一个logBlock
|
||||||
|
*
|
||||||
|
* @param logBlock 打印log的回调block
|
||||||
|
*/
|
||||||
|
+ (void)startLogWithBlock:(QQApiLogBolock)logBlock;
|
||||||
|
///停止回调打印
|
||||||
|
+ (void)stopLog;
|
||||||
|
///设置打印日志到文件开关on/off,如果不设置,默认不打印到文件
|
||||||
|
+ (void)setSwitchPrintLogToFile:(BOOL)on;
|
||||||
|
///日志文件目录
|
||||||
|
+ (NSString*)getLogFilePath;
|
||||||
@end
|
@end
|
||||||
|
@ -37,6 +37,7 @@ typedef NS_ENUM(NSInteger,QQApiSendResultCode) {
|
|||||||
EQQAPIQZONENOTSUPPORTIMAGE = 10001, //qzone分享不支持image类型分享
|
EQQAPIQZONENOTSUPPORTIMAGE = 10001, //qzone分享不支持image类型分享
|
||||||
EQQAPIVERSIONNEEDUPDATE = 10002, //当前QQ版本太低,需要更新至新版本才可以支持
|
EQQAPIVERSIONNEEDUPDATE = 10002, //当前QQ版本太低,需要更新至新版本才可以支持
|
||||||
ETIMAPIVERSIONNEEDUPDATE = 10004, //当前TIM版本太低,需要更新至新版本才可以支持
|
ETIMAPIVERSIONNEEDUPDATE = 10004, //当前TIM版本太低,需要更新至新版本才可以支持
|
||||||
|
EAPPURLTYPESILLEGALITY = 20000, //(>=3.3.8)第三方APP的info.plist中UrlTypes字段存在QQ的UrlScheme
|
||||||
};
|
};
|
||||||
|
|
||||||
#pragma mark - QQApiObject(分享对象类型)
|
#pragma mark - QQApiObject(分享对象类型)
|
||||||
@ -66,6 +67,9 @@ typedef NS_ENUM(NSUInteger, MiniProgramType) {
|
|||||||
MiniProgramType_Preview=4, // 预览版
|
MiniProgramType_Preview=4, // 预览版
|
||||||
};
|
};
|
||||||
|
|
||||||
|
/// 打印回调的block
|
||||||
|
typedef void(^QQApiLogBolock)(NSString *logStr);
|
||||||
|
|
||||||
// QQApiObject
|
// QQApiObject
|
||||||
/** \brief 所有在QQ及插件间发送的数据对象的根类。
|
/** \brief 所有在QQ及插件间发送的数据对象的根类。
|
||||||
*/
|
*/
|
||||||
@ -106,9 +110,16 @@ __attribute__((visibility("default"))) @interface QQApiMiniProgramObject : NSObj
|
|||||||
//唤起小程序 - QQ 8.1.8
|
//唤起小程序 - QQ 8.1.8
|
||||||
__attribute__((visibility("default"))) @interface QQApiLaunchMiniProgramObject : QQApiObject
|
__attribute__((visibility("default"))) @interface QQApiLaunchMiniProgramObject : QQApiObject
|
||||||
@property(nonatomic,retain) NSString* miniAppID; //必填,小程序的AppId(注:必须在QQ互联平台中,将该小程序与分享的App绑定)
|
@property(nonatomic,retain) NSString* miniAppID; //必填,小程序的AppId(注:必须在QQ互联平台中,将该小程序与分享的App绑定)
|
||||||
@property(nonatomic,retain) NSString* miniPath; //必填,小程序的展示路径
|
@property(nonatomic,retain) NSString* miniPath; //小程序的展示路径,不填展示默认小程序首页
|
||||||
@property(nonatomic,assign) MiniProgramType miniprogramType; //非必填,小程序的类型,默认正式版(3),可选测试版(1)、开发版(0)
|
@property(nonatomic,assign) MiniProgramType miniprogramType; //非必填,小程序的类型,默认正式版(3),可选测试版(1)、开发版(0)
|
||||||
@end
|
@end
|
||||||
|
|
||||||
|
//小程序唤起第三方 - SDK 3.3.9
|
||||||
|
__attribute__((visibility("default"))) @interface QQApiMiniProgramLaunchObject : QQApiObject
|
||||||
|
@property(nonatomic,copy) NSString* appParameter; //小程序带来的数据,透传
|
||||||
|
+ (instancetype)newWithAppParameter:(NSString*)parameter;
|
||||||
|
@end
|
||||||
|
|
||||||
// QQApiResultObject
|
// QQApiResultObject
|
||||||
/** \brief 用于请求回应的数据类型。
|
/** \brief 用于请求回应的数据类型。
|
||||||
<h3>可能错误码及描述如下:</h3>
|
<h3>可能错误码及描述如下:</h3>
|
||||||
|
@ -164,8 +164,8 @@ typedef NS_ENUM(NSUInteger, TencentAuthMode) {
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* 初始化TencentOAuth对象
|
* 初始化TencentOAuth对象
|
||||||
* \param appId 第三方应用在互联开放平台申请的唯一标识
|
* \param appId 不可为nil,第三方应用在互联开放平台申请的唯一标识
|
||||||
* \param delegate 第三方应用用于接收请求返回结果的委托对象
|
* \param delegate 不可为nil,第三方应用用于接收请求返回结果的委托对象
|
||||||
* \return 初始化后的授权登录对象
|
* \return 初始化后的授权登录对象
|
||||||
*/
|
*/
|
||||||
- (id)initWithAppId:(NSString *)appId
|
- (id)initWithAppId:(NSString *)appId
|
||||||
@ -173,15 +173,38 @@ typedef NS_ENUM(NSUInteger, TencentAuthMode) {
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* 初始化TencentOAuth对象(>=3.3.7)
|
* 初始化TencentOAuth对象(>=3.3.7)
|
||||||
* \param appId 第三方应用在互联开放平台申请的唯一标识
|
* \param appId 不可为nil,第三方应用在互联开放平台申请的唯一标识
|
||||||
* \param universalLink 第三方应用在互联开放平台注册的universallink,和bundleID一一对应
|
* \param universalLink 可以为nil,第三方应用在互联开放平台注册的UniversalLink,和bundleID一一对应(当为nil时,互联平台会按规则生成universallink,详见官网说明)
|
||||||
* \param delegate 第三方应用用于接收请求返回结果的委托对象
|
* \param delegate 不可为nil,第三方应用用于接收请求返回结果的委托对象
|
||||||
* \return 初始化后的授权登录对象
|
* \return 初始化后的授权登录对象
|
||||||
|
*
|
||||||
|
****【使用说明】*****
|
||||||
|
* 1、支持BundleId与UniversalLink的一一对应,主要目的“是为了解决应用的iPhone版本和iPad HD版本共用同一个AppId,导致同时安装情况下的跳转问题"。
|
||||||
|
* 2 、由于手Q版本在 >=8.1.8 后才支持了这种对应方式,所以一旦使用,“务必做到”及时知会用户升级手Q版本。
|
||||||
|
****
|
||||||
*/
|
*/
|
||||||
- (id)initWithAppId:(NSString *)appId
|
- (id)initWithAppId:(NSString *)appId
|
||||||
andUniversalLink:(NSString *)universalLink
|
andUniversalLink:(NSString *)universalLink
|
||||||
andDelegate:(id<TencentSessionDelegate>)delegate;
|
andDelegate:(id<TencentSessionDelegate>)delegate;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 初始化TencentOAuth对象(>=3.3.8)
|
||||||
|
* \param appId 不可为nil,第三方应用在互联开放平台申请的唯一标识
|
||||||
|
* \param enabled 默认为NO,第三方应用是否将sdk和手机QQ的交互方式切换为UniversalLink方式,启用后则在iOS9及以上的系统都会生效UniversalLink方式;否则,默认仅在iOS13及以上的系统生效UniversalLink方式。
|
||||||
|
* \param universalLink 可以为nil,第三方应用在互联开放平台注册的UniversalLink,和bundleID一一对应(当为nil时,互联平台会按规则生成UniversalLink,详见官网说明)
|
||||||
|
* \param delegate 不可为nil,第三方应用用于接收请求返回结果的委托对象
|
||||||
|
* \return 初始化后的授权登录对象
|
||||||
|
*
|
||||||
|
*****【使用说明】*****
|
||||||
|
* 1、支持sdk与手Q的交互切换为UniversalLink模式,主要目的"是为了避免手Q的UrlScheme被其他应用抢注后,导致sdk接口功能受到影响"。
|
||||||
|
* 2 、由于手Q版本在 >=8.1.3 后才适配了UniversalLink,所以一旦开启了enabled开关,“务必做到”及时知会用户升级手Q版本。
|
||||||
|
*****
|
||||||
|
*/
|
||||||
|
- (id)initWithAppId:(NSString *)appId
|
||||||
|
enableUniveralLink:(BOOL)enabled
|
||||||
|
universalLink:(NSString *)universalLink
|
||||||
|
delegate:(id<TencentSessionDelegate>)delegate;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 判断用户手机上是否安装手机QQ
|
* 判断用户手机上是否安装手机QQ
|
||||||
* \return YES:安装 NO:没安装
|
* \return YES:安装 NO:没安装
|
||||||
|
Binary file not shown.
@ -20,7 +20,6 @@ class Tencent {
|
|||||||
static const String _METHOD_REGISTERAPP = 'registerApp';
|
static const String _METHOD_REGISTERAPP = 'registerApp';
|
||||||
static const String _METHOD_ISQQINSTALLED = 'isQQInstalled';
|
static const String _METHOD_ISQQINSTALLED = 'isQQInstalled';
|
||||||
static const String _METHOD_ISTIMINSTALLED = 'isTIMInstalled';
|
static const String _METHOD_ISTIMINSTALLED = 'isTIMInstalled';
|
||||||
static const String _METHOD_ISQQLITEINSTALLED = 'isQQLiteInstalled';
|
|
||||||
static const String _METHOD_LOGIN = 'login';
|
static const String _METHOD_LOGIN = 'login';
|
||||||
static const String _METHOD_LOGOUT = 'logout';
|
static const String _METHOD_LOGOUT = 'logout';
|
||||||
static const String _METHOD_SHAREMOOD = 'shareMood';
|
static const String _METHOD_SHAREMOOD = 'shareMood';
|
||||||
@ -77,16 +76,14 @@ class Tencent {
|
|||||||
}) {
|
}) {
|
||||||
assert(appId != null && appId.isNotEmpty);
|
assert(appId != null && appId.isNotEmpty);
|
||||||
assert(!Platform.isIOS || universalLink == null);
|
assert(!Platform.isIOS || universalLink == null);
|
||||||
final Map<String, dynamic> arguments = <String, dynamic>{
|
return _channel.invokeMethod(
|
||||||
_ARGUMENT_KEY_APPID: appId,
|
_METHOD_REGISTERAPP,
|
||||||
// _ARGUMENT_KEY_UNIVERSALLINK: universalLink,
|
<String, dynamic>{
|
||||||
};
|
_ARGUMENT_KEY_APPID: appId,
|
||||||
|
if (universalLink?.isNotEmpty ?? false)
|
||||||
/// 兼容 iOS 空安全 -> NSNull
|
_ARGUMENT_KEY_UNIVERSALLINK: universalLink,
|
||||||
if (universalLink != null) {
|
},
|
||||||
arguments[_ARGUMENT_KEY_UNIVERSALLINK] = universalLink;
|
);
|
||||||
}
|
|
||||||
return _channel.invokeMethod(_METHOD_REGISTERAPP, arguments);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/// 登录
|
/// 登录
|
||||||
@ -99,13 +96,6 @@ class Tencent {
|
|||||||
return _shareRespStreamController.stream;
|
return _shareRespStreamController.stream;
|
||||||
}
|
}
|
||||||
|
|
||||||
/// 检查QQ是否已安装
|
|
||||||
Future<bool> isInstalled() async {
|
|
||||||
return (await isQQInstalled()) ||
|
|
||||||
(await isTIMInstalled()) ||
|
|
||||||
(await isQQLiteInstalled());
|
|
||||||
}
|
|
||||||
|
|
||||||
/// 检查QQ是否已安装
|
/// 检查QQ是否已安装
|
||||||
Future<bool> isQQInstalled() {
|
Future<bool> isQQInstalled() {
|
||||||
return _channel.invokeMethod(_METHOD_ISQQINSTALLED);
|
return _channel.invokeMethod(_METHOD_ISQQINSTALLED);
|
||||||
@ -116,11 +106,6 @@ class Tencent {
|
|||||||
return _channel.invokeMethod(_METHOD_ISTIMINSTALLED);
|
return _channel.invokeMethod(_METHOD_ISTIMINSTALLED);
|
||||||
}
|
}
|
||||||
|
|
||||||
/// 检查QQ是否已安装
|
|
||||||
Future<bool> isQQLiteInstalled() {
|
|
||||||
return _channel.invokeMethod(_METHOD_ISQQLITEINSTALLED);
|
|
||||||
}
|
|
||||||
|
|
||||||
/// 登录
|
/// 登录
|
||||||
Future<void> login({
|
Future<void> login({
|
||||||
@required List<String> scope,
|
@required List<String> scope,
|
||||||
@ -214,27 +199,17 @@ class Tencent {
|
|||||||
assert(imageUri != null && imageUri.isScheme(_SCHEME_FILE));
|
assert(imageUri != null && imageUri.isScheme(_SCHEME_FILE));
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
final Map<String, dynamic> arguments = <String, dynamic>{
|
return _channel.invokeMethod(
|
||||||
_ARGUMENT_KEY_SCENE: scene,
|
_METHOD_SHAREMOOD,
|
||||||
// _ARGUMENT_KEY_SUMMARY: summary,
|
<String, dynamic>{
|
||||||
// _ARGUMENT_KEY_IMAGEURIS: imageUris != null ? new List.generate(imageUris.length, (int index) {
|
_ARGUMENT_KEY_SCENE: scene,
|
||||||
// return imageUris[index].toString();
|
if (summary?.isNotEmpty ?? false) _ARGUMENT_KEY_SUMMARY: summary,
|
||||||
// }) : null,
|
if (imageUris?.isNotEmpty ?? false)
|
||||||
// _ARGUMENT_KEY_VIDEOURI: videoUri != null ? videoUri.toString() : null,
|
_ARGUMENT_KEY_IMAGEURIS:
|
||||||
};
|
imageUris.map((Uri imageUri) => imageUri.toString()).toList(),
|
||||||
|
if (videoUri != null) _ARGUMENT_KEY_VIDEOURI: videoUri.toString(),
|
||||||
/// 兼容 iOS 空安全 -> NSNull
|
},
|
||||||
if (summary != null && summary.isNotEmpty) {
|
);
|
||||||
arguments[_ARGUMENT_KEY_SUMMARY] = summary;
|
|
||||||
}
|
|
||||||
if (imageUris != null && imageUris.isNotEmpty) {
|
|
||||||
arguments[_ARGUMENT_KEY_IMAGEURIS] =
|
|
||||||
imageUris.map((Uri imageUri) => imageUri.toString()).toList();
|
|
||||||
}
|
|
||||||
if (videoUri != null) {
|
|
||||||
arguments[_ARGUMENT_KEY_VIDEOURI] = videoUri.toString();
|
|
||||||
}
|
|
||||||
return _channel.invokeMethod(_METHOD_SHAREMOOD, arguments);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/// 分享 - 文本(Android调用的是系统API,故而不会有回调)
|
/// 分享 - 文本(Android调用的是系统API,故而不会有回调)
|
||||||
@ -244,11 +219,13 @@ class Tencent {
|
|||||||
}) {
|
}) {
|
||||||
assert(scene == TencentScene.SCENE_QQ);
|
assert(scene == TencentScene.SCENE_QQ);
|
||||||
assert(summary != null && summary.isNotEmpty);
|
assert(summary != null && summary.isNotEmpty);
|
||||||
final Map<String, dynamic> arguments = <String, dynamic>{
|
return _channel.invokeMethod(
|
||||||
_ARGUMENT_KEY_SCENE: scene,
|
_METHOD_SHARETEXT,
|
||||||
_ARGUMENT_KEY_SUMMARY: summary,
|
<String, dynamic>{
|
||||||
};
|
_ARGUMENT_KEY_SCENE: scene,
|
||||||
return _channel.invokeMethod(_METHOD_SHARETEXT, arguments);
|
_ARGUMENT_KEY_SUMMARY: summary,
|
||||||
|
},
|
||||||
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
/// 分享 - 图片
|
/// 分享 - 图片
|
||||||
@ -260,18 +237,15 @@ class Tencent {
|
|||||||
}) {
|
}) {
|
||||||
assert(scene == TencentScene.SCENE_QQ);
|
assert(scene == TencentScene.SCENE_QQ);
|
||||||
assert(imageUri != null && imageUri.isScheme(_SCHEME_FILE));
|
assert(imageUri != null && imageUri.isScheme(_SCHEME_FILE));
|
||||||
final Map<String, dynamic> arguments = <String, dynamic>{
|
return _channel.invokeMethod(
|
||||||
_ARGUMENT_KEY_SCENE: scene,
|
_METHOD_SHAREIMAGE,
|
||||||
_ARGUMENT_KEY_IMAGEURI: imageUri.toString(),
|
<String, dynamic>{
|
||||||
// _ARGUMENT_KEY_APPNAME: appName,
|
_ARGUMENT_KEY_SCENE: scene,
|
||||||
_ARGUMENT_KEY_EXTINT: extInt,
|
_ARGUMENT_KEY_IMAGEURI: imageUri.toString(),
|
||||||
};
|
if (appName?.isNotEmpty ?? false) _ARGUMENT_KEY_APPNAME: appName,
|
||||||
|
_ARGUMENT_KEY_EXTINT: extInt,
|
||||||
/// 兼容 iOS 空安全 -> NSNull
|
},
|
||||||
if (appName != null && appName.isNotEmpty) {
|
);
|
||||||
arguments[_ARGUMENT_KEY_APPNAME] = appName;
|
|
||||||
}
|
|
||||||
return _channel.invokeMethod(_METHOD_SHAREIMAGE, arguments);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/// 分享 - 音乐
|
/// 分享 - 音乐
|
||||||
@ -289,28 +263,19 @@ class Tencent {
|
|||||||
assert(title != null && title.isNotEmpty);
|
assert(title != null && title.isNotEmpty);
|
||||||
assert(musicUrl != null && musicUrl.isNotEmpty);
|
assert(musicUrl != null && musicUrl.isNotEmpty);
|
||||||
assert(targetUrl != null && targetUrl.isNotEmpty);
|
assert(targetUrl != null && targetUrl.isNotEmpty);
|
||||||
final Map<String, dynamic> arguments = <String, dynamic>{
|
return _channel.invokeMethod(
|
||||||
_ARGUMENT_KEY_SCENE: scene,
|
_METHOD_SHAREMUSIC,
|
||||||
_ARGUMENT_KEY_TITLE: title,
|
<String, dynamic>{
|
||||||
// _ARGUMENT_KEY_SUMMARY: summary,
|
_ARGUMENT_KEY_SCENE: scene,
|
||||||
// _ARGUMENT_KEY_IMAGEURI: imageUri != null ? imageUri.toString() : null,
|
_ARGUMENT_KEY_TITLE: title,
|
||||||
_ARGUMENT_KEY_MUSICURL: musicUrl,
|
if (summary?.isNotEmpty ?? false) _ARGUMENT_KEY_SUMMARY: summary,
|
||||||
_ARGUMENT_KEY_TARGETURL: targetUrl,
|
if (imageUri != null) _ARGUMENT_KEY_IMAGEURI: imageUri.toString(),
|
||||||
// _ARGUMENT_KEY_APPNAME: appName,
|
_ARGUMENT_KEY_MUSICURL: musicUrl,
|
||||||
_ARGUMENT_KEY_EXTINT: extInt,
|
_ARGUMENT_KEY_TARGETURL: targetUrl,
|
||||||
};
|
if (appName?.isNotEmpty ?? false) _ARGUMENT_KEY_APPNAME: appName,
|
||||||
|
_ARGUMENT_KEY_EXTINT: extInt,
|
||||||
/// 兼容 iOS 空安全 -> NSNull
|
},
|
||||||
if (summary != null && summary.isNotEmpty) {
|
);
|
||||||
arguments[_ARGUMENT_KEY_SUMMARY] = summary;
|
|
||||||
}
|
|
||||||
if (imageUri != null) {
|
|
||||||
arguments[_ARGUMENT_KEY_IMAGEURI] = imageUri.toString();
|
|
||||||
}
|
|
||||||
if (appName != null && appName.isNotEmpty) {
|
|
||||||
arguments[_ARGUMENT_KEY_APPNAME] = appName;
|
|
||||||
}
|
|
||||||
return _channel.invokeMethod(_METHOD_SHAREMUSIC, arguments);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/// 分享 - 网页
|
/// 分享 - 网页
|
||||||
@ -325,26 +290,17 @@ class Tencent {
|
|||||||
}) {
|
}) {
|
||||||
assert(title != null && title.isNotEmpty);
|
assert(title != null && title.isNotEmpty);
|
||||||
assert(targetUrl != null && targetUrl.isNotEmpty);
|
assert(targetUrl != null && targetUrl.isNotEmpty);
|
||||||
final Map<String, dynamic> arguments = <String, dynamic>{
|
return _channel.invokeMethod(
|
||||||
_ARGUMENT_KEY_SCENE: scene,
|
_METHOD_SHAREWEBPAGE,
|
||||||
_ARGUMENT_KEY_TITLE: title,
|
<String, dynamic>{
|
||||||
// _ARGUMENT_KEY_SUMMARY: summary,
|
_ARGUMENT_KEY_SCENE: scene,
|
||||||
// _ARGUMENT_KEY_IMAGEURI: imageUri != null ? imageUri.toString() : null,
|
_ARGUMENT_KEY_TITLE: title,
|
||||||
_ARGUMENT_KEY_TARGETURL: targetUrl,
|
if (summary?.isNotEmpty ?? false) _ARGUMENT_KEY_SUMMARY: summary,
|
||||||
// _ARGUMENT_KEY_APPNAME: appName,
|
if (imageUri != null) _ARGUMENT_KEY_IMAGEURI: imageUri.toString(),
|
||||||
_ARGUMENT_KEY_EXTINT: extInt,
|
_ARGUMENT_KEY_TARGETURL: targetUrl,
|
||||||
};
|
if (appName?.isNotEmpty ?? false) _ARGUMENT_KEY_APPNAME: appName,
|
||||||
|
_ARGUMENT_KEY_EXTINT: extInt,
|
||||||
/// 兼容 iOS 空安全 -> NSNull
|
},
|
||||||
if (summary != null && summary.isNotEmpty) {
|
);
|
||||||
arguments[_ARGUMENT_KEY_SUMMARY] = summary;
|
|
||||||
}
|
|
||||||
if (imageUri != null) {
|
|
||||||
arguments[_ARGUMENT_KEY_IMAGEURI] = imageUri.toString();
|
|
||||||
}
|
|
||||||
if (appName != null && appName.isNotEmpty) {
|
|
||||||
arguments[_ARGUMENT_KEY_APPNAME] = appName;
|
|
||||||
}
|
|
||||||
return _channel.invokeMethod(_METHOD_SHAREWEBPAGE, arguments);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -1,11 +1,11 @@
|
|||||||
name: tencent_kit
|
name: tencent_kit
|
||||||
description: A powerful Flutter plugin allowing developers to share or authorize with natvie android & iOS Tencent SDKs.
|
description: A powerful Flutter plugin allowing developers to share or authorize with natvie android & iOS Tencent SDKs.
|
||||||
version: 1.0.4
|
version: 1.1.0
|
||||||
# author: v7lin <v7lin@qq.com>
|
# author: v7lin <v7lin@qq.com>
|
||||||
homepage: https://github.com/v7lin/fake_tencent
|
homepage: https://github.com/v7lin/fake_tencent
|
||||||
|
|
||||||
environment:
|
environment:
|
||||||
sdk: ">=2.1.0 <3.0.0"
|
sdk: ">=2.3.0 <3.0.0"
|
||||||
|
|
||||||
dependencies:
|
dependencies:
|
||||||
flutter:
|
flutter:
|
||||||
|
Reference in New Issue
Block a user