npm

@dongxii/react-native-weibo

1.0.5 • Public • Published

react-native-weibo

Getting started

$ yarn add @dongxii/react-native-weibo

Mostly automatic installation

$ react-native link @dongxii/react-native-weibo

Manual installation

iOS

  1. In XCode, in the project navigator, right click LibrariesAdd Files to [your project's name]
  2. Go to node_modules@dongxiireact-native-weibo and add RNWeibo.xcodeproj
  3. In XCode, in the project navigator, select your project. Add libRNWeibo.a to your project's Build PhasesLink Binary With Libraries
  4. Run your project (Cmd+R)<

Android

  1. 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 the getPackages() method
  1. 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')
    
  2. Insert the following lines inside the dependencies block in android/app/build.gradle:
    compile project(':@dongxii/react-native-weibo')
    

Additional steps

iOS

  1. Install the weibo iOS SDK using cocoapods
pod "Weibo_SDK", :git => "https://github.com/sinaweibosdk/weibo_ios_sdk.git"
  1. In XCode, in the project navigator, select your project, go to the Info-Tab ➜ URL Types and add a new URL type with Identifier sina and schema wb[YOUR APP KEY].
  2. Add sinaweibohd, sinaweibo, weibosdk and weibosdk2.5 as LSApplicationQueriesSchemes in your Info.plist file.
  3. 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>
  1. 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

  1. 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

  1. $ cd example && yarn install
  2. $ cd ios && pod install
  3. $ cd .. && react-native run-ios

Readme

Keywords

Package Sidebar

Install

npm i @dongxii/react-native-weibo

Weekly Downloads

1

Version

1.0.5

License

MIT

Last publish

Collaborators

  • flavordaaave