@dongxii/react-native-weibo
v1.0.5
Published
## Getting started
Downloads
4
Readme
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-weibo
and addRNWeibo.xcodeproj
- In XCode, in the project navigator, select your project. Add
libRNWeibo.a
to 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 Types
and add a new URL type with Identifiersina
and schemawb[YOUR APP KEY]
. - Add
sinaweibohd
,sinaweibo
,weibosdk
andweibosdk2.5
asLSApplicationQueriesSchemes
in 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.gradle
to 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