项目作者: jpush

项目描述 :
JMlink's officially supported react native plugin (Android & iOS). 极光魔链官方支持的 react native 插件(Android & iOS)。
高级语言: Objective-C
项目地址: git://github.com/jpush/jmlink-react-native.git
创建时间: 2020-06-02T09:23:02Z
项目社区:https://github.com/jpush/jmlink-react-native

开源协议:

下载


JMLink-React-Native

ChangeLog

v 1.2.0

极光魔链RN 1.2.4

v 1.0.0

极光魔链RN第一版

1. 安装

  1. npm install jmlink-react-native --save
  • 注意:如果项目里没有jcore-react-native,需要安装

    1. npm install jcore-react-native --save

2. 配置

2.1 Android

  • build.gradle

    1. android {
    2. defaultConfig {
    3. applicationId "yourApplicationId" //在此替换你的应用包名
    4. ...
    5. manifestPlaceholders = [
    6. JPUSH_APPKEY: "yourAppKey", //在此替换你的APPKey
    7. JPUSH_CHANNEL: "yourChannel", //在此替换你的channel
    8. JMLINK_SCHEME: "yourScheme" // 在此替换你的scheme
    9. ]
    10. }
    11. }
    1. dependencies {
    2. ...
    3. implementation project(':jmlink-react-native') // 添加 jverification 依赖
    4. implementation project(':jcore-react-native') // 添加 jcore 依赖
    5. }
  • setting.gradle

    1. include ':jmlink-react-native'
    2. project(':jmlink-react-native').projectDir = new File(rootProject.projectDir, '../node_modules/jmlink-react-native/android')
    3. include ':jcore-react-native'
    4. project(':jcore-react-native').projectDir = new File(rootProject.projectDir, '../node_modules/jcore-react-native/android')

2.2 iOS

2.2.1 pod

  1. pod install
  • 注意:如果项目里使用pod安装过,请先执行命令

    1. pod deintegrate

2.2.2 手动方式

  • Libraries

    1. Add Files to "your project name"
    2. node_modules/jcore-react-native/ios/RCTJCoreModule.xcodeproj
    3. node_modules/jmlink-react-native/ios/RCTJMLinkModule.xcodeproj
  • Build Settings

    1. All --- Search Paths --- Header Search Paths --- +
    2. $(SRCROOT)/../node_modules/jcore-react-native/ios/RCTJCoreModule/
    3. $(SRCROOT)/../node_modules/jmlink-react-native/ios/RCTJMLinkModule/
  • Build Phases

    1. libz.tbd
    2. libc++.1.tbd
    3. libresolv.tbd
    4. libsqlite3.tbd
    5. libRCTJCoreModule.a
    6. libRCTJMLinkModule.a
  • info.plist

    1. View controller-based status bar appearance : YES

    2.2.3 配置

  • 配置App的URL Scheme

iOS系统中App之间是相互隔离的,通过URL Scheme,App之间可以相互调用,并且可以传递参数。
选中Target->Info->URL Types,配置URL Scheme(比如:jmlink)

在Safari中输入URL Scheme://(比如:jmlink://)如果可以唤起App,说明该URL Scheme配置成功。

  • 配置Universal link

Universal link是iOS9的一个新特性,通过Universal link,App可以无需打开Safari,直接从微信等应用中跳转到App,真正的实现一键直达。如果使用URL Scheme的话,需要先打开Safari,用户体验变得很差,如果App未安装,还会出现以下错误对话框

Xcode 里的具体配置请查看 mLink的设置

  • 初始化代码

    在 iOS 项目的 AppDelegate.m 文件内的 [application: didFinishLaunchingWithOptions:] 方法里必须调用如下代码完成初始化

  1. - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
  2. {
  3. [RCTJMLinkModule setupAppKey:@"极光官网分配的appKey"
  4. channel:@"channel"
  5. advertisingId:nil
  6. isProduction:NO
  7. isDebug:YES];
  8. }

3. 引用

参考:App.js

4. API

详见:index.js

5. 其他

  • 集成前务必将example工程跑通
  • 上报问题还麻烦先将init参数中params的debug字段设置成true,拿到debug日志