1.0.6 • Published 6 years ago

@beesight/rct-baidupush v1.0.6

Weekly downloads
17
License
MIT
Repository
github
Last release
6 years ago

rct-baidupush

Getting started

$ npm install @beesight/rct-baidupush --save

Manual link

iOS

  1. In XCode, in the project navigator, right click LibrariesAdd Files to [your project's name]
  2. Go to node_modules@beesight/rct-baidupush and add RNBssBaidupush.xcodeproj
  3. In XCode, in the project navigator, select your project. Add libRNBssBaidupush.a to your project's Build PhasesLink Binary With Libraries
  4. In XCode, in the project navigator, select your project.
    • Go the General tab ➜ Linked Frameworks and Libraries+ button ➜ Add Othernode_modules/@beesight/rct-baidupush/ios/normalversion ➜ choose libBPush.a .
    • Look for Header Search Paths and make sure it contains $(SRCROOT)/../node_modules/@beesight/rct-baidupush/ios and Libraries Search Paths contains $(SRCROOT)/../node_modules/@beesight/rct-baidupush/ios/normalversion
    • Mark linker in Libraries Search Paths as recursive .
  5. Open up your AppDelegate.m

Android

  1. Open up android/app/src/main/java/[...]/MainApplication.java
  • Add import com.rct_baidupush.RNBssBaidupushPackage; to the imports at the top of the file
  • Add new RNBssBaidupushPackage() to the list returned by the getPackages() method
  1. Append the following lines to android/settings.gradle:
    include ':rct-baidupush'
    project(':rct-baidupush').projectDir = new File(rootProject.projectDir, 	'../node_modules/@beesight/rct-baidupush/android')
  2. Insert the following lines inside the dependencies block in android/app/build.gradle:
      compile project(':rct-baidupush')
  3. Open up android/app/src/main/AndroidManifest.xml add permissions

    <uses-permission android:name="android.permission.INTERNET" />
      <uses-permission android:name="android.permission.SYSTEM_ALERT_WINDOW" />
    
    <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"/>
    <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION"/>
    <uses-permission android:name="baidu.push.permission.WRITE_PUSHINFOPROVIDER.com.eflink.mobile"/>
    <uses-permission android:name="android.permission.READ_PHONE_STATE" />
    <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
    <uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" />
    <uses-permission android:name="android.permission.WRITE_SETTINGS" />
    <uses-permission android:name="android.permission.VIBRATE" />
    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
    <uses-permission android:name="android.permission.ACCESS_DOWNLOAD_MANAGER" />
    <uses-permission android:name="android.permission.DOWNLOAD_WITHOUT_NOTIFICATION" />
    <uses-permission android:name="android.permission.DISABLE_KEYGUARD" />
    <uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
    <uses-permission android:name="android.permission.EXPAND_STATUS_BAR" />

    Add permissions to access push notification (replace your app package):

    <permission
           android:name="baidu.push.permission.WRITE_PUSHINFOPROVIDER.your_app_package"
           android:protectionLevel="normal"> 
     </permission>

    Under <application> (replace your app package)

     <provider
            android:name="com.baidu.android.pushservice.PushInfoProvider"
            android:authorities="com.eflink.mobile.bdpush"
            android:writePermission="baidu.push.permission.WRITE_PUSHINFOPROVIDER.your_app_package"
            android:protectionLevel = "signature"
            android:exported="true" />
     <meta-data
               android:name="api_key"
               android:value="enter_your_api_key" />

Usage

      import RNBssBaidupush from '@beesight/rct-baidupush';
      // when receive a message
      RNBssBaidupush.monitorReceiveMessage((message) => {
         console.log('monitorReceiveMessage=' + JSON.stringify(message))
       })
       
       // when click on message
       RNBssBaidupush.monitorBackstageOpenMessage((message) => {
         console.log('monitorClickMessage=' + JSON.stringify(message))
       })
       
       // get ChannelId
       RNBssBaidupush.getChannelId().then((ChannelId) => {
         if (!isNil(ChannelId)) { this.setState({tokenId: ChannelId}) }
         console.log('ChannelId=' + ChannelId)
       })

Environment

  • react-native: 0.53.0
  • node: 10.0.0
  • npm: 5.6.0
  • baidu-push:
    • Android 5.9.0
    • IOS 1.5.4
  • Device test:
    • Android 6.0
    • IOS 12.0
1.0.6

6 years ago

1.0.5

6 years ago

1.0.4

6 years ago

1.0.3

6 years ago

1.0.2

6 years ago

1.0.1

6 years ago