react-native-qqsdk-without-mta
A React Native wrapper around the Tencent QQ SDK for Android and iOS. Provides access to QQ ssoLogin, QQ Sharing, QQ Zone Sharing etc.
Table of Contents
Feature
- QQ SSO Login
- QQ Logout
- QQ Share
- QZone Share
- QQ Favorites
- checkClientInstalled
Installation
npm install --save react-native-qqsdk-without-mta@latest
RNPM
react-native link react-native-qqsdk-without-mta
CocoaPods
- Install package from npm
npm install --save react-native-qqsdk-without-mta@latest
- Create a Podfile
- Add pod in Podfile something similar to this:
pod 'React', :path => '../node_modules/react-native', :subspecs => [ 'Core', 'CxxBridge', 'RCTText', 'RCTNetwork', 'RCTImage', 'RCTWebSocket', # needed for debugging # Add any other subspecs you want to use in your project 'DevSupport']pod "Yoga", :path => "../node_modules/react-native/ReactCommon/yoga"pod "react-native-qqsdk-without-mta", :path => "../node_modules/react-native-qqsdk-without-mta"
- Pod install
- Follow step 7,8,9 in iOS Setup
Manual
npm install --save react-native-qqsdk-without-mta@latest
iOS Setup
-
Open your app's Xcode project
-
Find the
RCTQQSDK.xcodeproj
file within thenode_modules/react-native-qqsdk-without-mta/ios
directory and drag it into theLibraries
node in Xcode -
Select the project node in Xcode and select the "Build Phases" tab of your project configuration.
-
Drag
libRCTQQSDK.a
fromLibraries/RCTQQSDK.xcodeproj/Products
into the "Link Binary With Libraries" section of your project's "Build Phases" configuration. -
Click the plus sign underneath the "Link Binary With Libraries" list and add the
libz.tbd,libiconv.tdb,libstdc++.tbd,libsqlite3.tbd,Security.framework,SystemConfiguration.framework,CoreTelephony.framework,CoreGraphics.framework
library . -
Click the plus sign underneath the "Link Binary With Libraries" list and add the TencentOpenAPI.framework which locate in
../node_modules/react-native-qqsdk-without-mta/ios/RCTQQSDK
. Then Under the "Build Settings" tab of your project configuration, find the "Framework Search Paths" section and edit the value. Add a new value,$(SRCROOT)/../node_modules/react-native-qqsdk-without-mta/ios/RCTQQSDK
. -
Under the "Info" tab of your project configuration, find the "URL Types" section and add your app Id.
-
Under the "Info" tab of your project configuration, add LSApplicationQueriesSchemes For QQ SDK.
-
add following code to your AppDelegate.m
...#import <React/RCTLinkingManager.h> - (BOOL)application:(UIApplication *)application openURL:(NSURL *)url sourceApplication:(NSString *)sourceApplication annotation:(id)annotation{ return [RCTLinkingManager application:application openURL:url sourceApplication:sourceApplication annotation:annotation];}
Android Setup
-
In your
android/settings.gradle
file, make the following additions:include ':app', ':react-native-qqsdk-without-mta'project(':react-native-qqsdk-without-mta').projectDir = new File(rootProject.projectDir, '../node_modules/react-native-qqsdk-without-mta/android') -
In your
android/app/build.gradle
file, add the:react-native-qqsdk-without-mta
project as a compile-time dependency:...dependencies {...compile project(':react-native-qqsdk-without-mta')} -
add App ID to
$RNProjectRoot/package.json
4.Update the MainApplication.java
file to use react-native-qqsdk-without-mta via the following changes:
...// 1. Import the plugin class.
Documentation
Support API
- ssoLogin
- Logout
- checkClientInstalled
- Share(see form below)
Platform | iOS | iOS | iOS | Android | Android | Android |
---|---|---|---|---|---|---|
ShareScene | QQZone | QQ Favorite | QQZone | QQ Favorite | ||
Text | √ | √ | √ | ✕ | √ | √ |
Image | √ | √ | √ | √ | √ | √ |
News | √ | √ | √ | √ | √ | √ |
Audio | √ | √ | √ | √ | √ | √ |
Error Code
code | explanation |
---|---|
404 | QQ client not found |
405 | Android Activity not found |
500 | QQ share (QQZone, QQ, Favorite) error |
503 | QQ share (QQZone, QQ, Favorite) cancelled |
600 | QQ ssoLogin error |
603 | ssoLogin cancelled |
Image
This plugin support three Image types:
- Network URL
- Base64
- Absolute file path also support resolveAssetSource,for example, resolveAssetSource(require('./news.jpg')).uri
Usage
checkClientInstalled
;QQ ;
ssoLogin
;QQ ;
logout
;QQ ;
shareText
;QQ ;
shareImage
;const imgUrl = 'https://y.gtimg.cn/music/photo_new/T001R300x300M000003Nz2So3XXYek.jpg';QQ ;
shareNews
;;QQ;
shareAudio
;const audioPreviewUrl = 'https://y.qq.com/portal/song/001OyHbk2MSIi4.html';const audioUrl = 'http://stream20.qqmusic.qq.com/30577158.mp3';const imgUrl = 'https://y.gtimg.cn/music/photo_new/T001R300x300M000003Nz2So3XXYek.jpg';QQ;
getUserInfo
var url = 'https://graph.qq.com/user/get_user_info?access_token=' + accessToken + '&oauth_consumer_key= APPID &openid=' + userId;http
About SDK
This plugin use 3.2.1 version sdk for Android,3.2.3 version sdk for iOS. You can download lastest version sdk here
Contributing
Feel free to contribute
License
react-native-qqsdk-without-mta is released under the MIT license. See LICENSE file for more information.