1.0.5 • Published 8 years ago
@dongxii/react-native-weibo v1.0.5
react-native-weibo
Getting started
$ yarn add @dongxii/react-native-weibo
Mostly automatic installation
$ react-native link @dongxii/react-native-weibo
Manual installation
iOS
- In XCode, in the project navigator, right click
Libraries➜Add Files to [your project's name] - Go to
node_modules➜@dongxii➜react-native-weiboand addRNWeibo.xcodeproj - In XCode, in the project navigator, select your project. Add
libRNWeibo.ato your project'sBuild Phases➜Link Binary With Libraries - Run your project (
Cmd+R)<
Android
- Open up
android/app/src/main/java/[...]/MainApplication.java
- Add
import com.dongxii.library.weibo.RNWeiboPackage;to the imports at the top of the file - Add
new RNWeiboPackage()to the list returned by thegetPackages()method
- Append the following lines to
android/settings.gradle:include ':@dongxii/react-native-weibo' project(':@dongxii/react-native-weibo').projectDir = new File(rootProject.projectDir, '../node_modules/@dongxii/react-native-weibo/android') - Insert the following lines inside the dependencies block in
android/app/build.gradle:compile project(':@dongxii/react-native-weibo')
Additional steps
iOS
- Install the weibo iOS SDK using cocoapods
pod "Weibo_SDK", :git => "https://github.com/sinaweibosdk/weibo_ios_sdk.git"- In XCode, in the project navigator, select your project, go to the
Info-Tab ➜URL Typesand add a new URL type with Identifiersinaand schemawb[YOUR APP KEY]. - Add
sinaweibohd,sinaweibo,weibosdkandweibosdk2.5asLSApplicationQueriesSchemesin your Info.plist file. - Due to the limitation of App Transport Security(ATS) on http in iOS9.0, you need to add the following exception to your Info.plist file:
<dict>
<key>NSExceptionDomains</key>
<dict>
<key>localhost</key>
<dict>
<key>NSExceptionAllowsInsecureHTTPLoads</key>
<true/>
</dict>
+ <key>sina.cn</key>
+ <dict>
+ <key>NSIncludesSubdomains</key>
+ <true/>
+ <key>NSThirdPartyExceptionRequiresForwardSecrecy</key>
+ <false/>
+ <key>NSExceptionMinimumTLSVersion</key>
+ <string>TLSv1.0</string>
+ </dict>
+ <key>weibo.cn</key>
+ <dict>
+ <key>NSIncludesSubdomains</key>
+ <true/>
+ <key>NSThirdPartyExceptionAllowsInsecureHTTPLoads</key>
+ <true/>
+ <key>NSThirdPartyExceptionRequiresForwardSecrecy</key>
+ <false/>
+ <key>NSExceptionMinimumTLSVersion</key>
+ <string>TLSv1.0</string>
+ </dict>
+ <key>weibo.com</key>
+ <dict>
+ <key>NSIncludesSubdomains</key>
+ <true/>
+ <key>NSThirdPartyExceptionAllowsInsecureHTTPLoads</key>
+ <true/>
+ <key>NSThirdPartyExceptionRequiresForwardSecrecy</key>
+ <false/>
+ <key>NSExceptionMinimumTLSVersion</key>
+ <string>TLSv1.0</string>
+ </dict>
+ <key>sinaimg.cn</key>
+ <dict>
+ <key>NSIncludesSubdomains</key>
+ <true/>
+ <key>NSThirdPartyExceptionAllowsInsecureHTTPLoads</key>
+ <true/>
+ <key>NSThirdPartyExceptionRequiresForwardSecrecy</key>
+ <false/>
+ <key>NSExceptionMinimumTLSVersion</key>
+ <string>TLSv1.0</string>
+ </dict>
+ <key>sinajs.cn</key>
+ <dict>
+ <key>NSIncludesSubdomains</key>
+ <true/>
+ <key>NSThirdPartyExceptionAllowsInsecureHTTPLoads</key>
+ <true/>
+ <key>NSThirdPartyExceptionRequiresForwardSecrecy</key>
+ <false/>
+ <key>NSExceptionMinimumTLSVersion</key>
+ <string>TLSv1.0</string>
+ </dict>
+ <key>sina.com.cn</key>
+ <dict>
+ <key>NSIncludesSubdomains</key>
+ <true/>
+ <key>NSThirdPartyExceptionAllowsInsecureHTTPLoads</key>
+ <true/>
+ <key>NSThirdPartyExceptionRequiresForwardSecrecy</key>
+ <false/>
+ <key>NSExceptionMinimumTLSVersion</key>
+ <string>TLSv1.0</string>
+ </dict>- In AppDelegate.m add the following code:
+ #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
- Edit your
android/build.gradleto look like this:
allprojects {
repositories {
mavenLocal()
jcenter()
maven {
// All of React Native (JS, Obj-C sources, Android binaries) is installed from npm
url "$rootDir/../node_modules/react-native/android"
}
+ flatDir{
+ dirs "$rootDir/../node_modules/@dongxii/react-native-weibo/android/libs"
+ }
}
}Usage
import RNWeibo from '@dongxii/react-native-weibo'
RNWeibo.init({
appKey: 'YOUR_APP_KEY',
scope: 'SCOPE', // e.g. 'all'
redirectURI: 'https://example.com/redirect...',
})
RNWeibo.isWeiboAppInstalled().then(isInstalled => {
console.log(isInstalled)
})
RNWeibo.authenticate()
.then(response => {
console.log(response)
})
.catch(error => {
console.log(response)
})Run the example
$ cd example && yarn install$ cd ios && pod install$ cd .. && react-native run-ios