1.0.1 • Published 2 years ago

@byron-react-native/qqopensdk v1.0.1

Weekly downloads
-
License
MIT
Repository
github
Last release
2 years ago

react-native-qq-open-sdk

*暂时不建议使用,目前只做了登录

Getting started

$ yarn add @byron-react-native/qqopensdk

iOS

// (1)配置URL Scheme
<>在XCode中,选择你的工程设置项,选中“TARGETS”一栏,在“info”标签栏的“URL type”添加一条新的“URL scheme”,新的scheme = tencent + appid。如果您使用的是XCode3或者更低的版本,则需要在plist文件中添加。</>

// (2)配置LSApplicationQueriesSchemes
<key>LSApplicationQueriesSchemes</key>
	<array>
		<string>mqq://</string>
		<string>mqqapi://</string>
		<!-- 更多请参考 https://wiki.connect.qq.com/ios_sdk%e7%8e%af%e5%a2%83%e6%90%ad%e5%bb%ba -->
    <string>tim://</string>
    <string>mqqopensdknopasteboard://</string>
    <string>mqqopensdkapiV2://</string>
    <string>mqqconnect</string>
    <string>mqqopensdkdataline</string>
    <string>mqqopensdkgrouptribeshare</string>
    <string>mqqopensdkfriend</string>
    <string>mqqopensdkapi</string>
    <string>mqqopensdkapiV2</string>
	</array>

// (3)AppDelegate.mm 添加
#import "WXApiManager.h" // 如果有集成微信
#import "QQApiManager.h"

// weixin qq
- (BOOL)application:(UIApplication *)app openURL:(NSURL *)url options:(NSDictionary<UIApplicationOpenURLOptionsKey,id> *)options
{
  if ([TencentOAuth CanHandleOpenURL:url]) {
    return [TencentOAuth HandleOpenURL:url];
  }
  // 如果有集成微信
  return [WXApi handleOpenURL:url delegate:[WXApiManager sharedManager]]; 
}

- (BOOL)application:(UIApplication *)application continueUserActivity:(NSUserActivity *)userActivity restorationHandler:(void(^)(NSArray<id<UIUserActivityRestoring>> * __nullable restorableObjects))restorationHandler
{
  if ([TencentOAuth CanHandleUniversalLink:userActivity.webpageURL]) {
    return [TencentOAuth HandleUniversalLink:userActivity.webpageURL];
  }
  // 如果有集成微信
  return [WXApi handleOpenUniversalLink:userActivity delegate:[WXApiManager sharedManager]];
}

Android

// app/build.gradle add
android {
  defaultConfig {
    manifestPlaceholders = [
      QQ_APPID: "QQ appId"
    ]
  }
}

Api

/**
 * 初始化TencentOAuth对象
 * @param appId 不可为nil,第三方应用在互联开放平台申请的唯一标识
 */
static initWithAppId(appId: string): void;
/**
 * 检测是否支持分享
 * 如果当前已安装QQ且QQ版本支持API调用 或者 当前已安装TIM且TIM版本支持API调用则返回YES,否则返回NO
 */
static isQQInstalled(): Promise<boolean>;
/**
 * 登录授权
 * @param permissions 授权信息列
 * @default ['get_user_info']
 */
static authorize(
  permissions?: string[]
): Promise<undefined | Partial<QQOpenSDKAuthorize>>;
/**
 * 增量授权,因用户没有授予相应接口调用的权限,需要用户确认是否授权
 * @param permissions 需增量授权的信息列表
 */
static incrAuthWithPermissions(permissions: string[]): Promise<boolean>;
/**
 * 重新授权,因token废除或失效导致接口调用失败,需用户重新授权
 * @param permissions 授权信息列表,同登录授权
 */
static reauthorizeWithPermissions(permissions: string[]): Promise<boolean>;
/**
 * 退出登录(退出登录后,TecentOAuth失效,需要重新初始化)
 */
static logout(): void;