世博会的分支订阅()不触发

时间:2018-04-04 23:04:53

标签: react-native expo branch.io

单击Branch.io生成的深层链接时,我无法触发Branch.subscribe。深层链接打开应用程序(我的应用程序),这很好,但任何具有相同架构(我的应用程序)的链接都会这样做。因此,我无法确认Expo分公司是否真的在Android上工作。

我尝试了一些变化。从世博会的例子开始:

componentDidMount() {
    logger('COMPONENT MOUNTED') // runs
    DangerZone.Branch.subscribe((bundle) => {
      logger('PLS WORK') // doesn't run
    });
  }
}

分支的例子:

  _unsubscribeFromBranch = null
  componentDidMount() {
    logger('COMPONENT MOUNTED') // runs
    _unsubscribeFromBranch = DangerZone.Branch.subscribe(({error, params}) => {
      logger('PLS WORK') // doesn't run
    })
  }

  componentWillUnmount() {
    if (_unsubscribeFromBranch) {
      _unsubscribeFromBranch()
      _unsubscribeFromBranch = null
    }
  }

subscribe()调用中的记录器永远不会触发。应用程序在deeplink url上打开,componentDidMount()运行,但订阅不会对链接做出反应。

我正在使用Expo的分支实施(Expo v25,react-native-branch 2.0.0-beta.3)。如果可能的话,我想避免脱离世博会。

从ADB记录的其他错误:

04-04 11:41:42.319 30352 30352 E i       : java.lang.ClassNotFoundException: abi25_0_0.host.exp.exponent.modules.api.branch.RNBranchModule
04-04 11:41:42.319 30352 30352 E i       : Runtime exception in RNObject when calling method initSession: java.lang.NullPointerException: Attempt to invoke virtual method 'java.lang.reflect.Method[] java.lang.Class.getMethods()' on a null object reference

1 个答案:

答案 0 :(得分:0)

看起来分支未正确初始化。你能用这个声明确认你已经导入了吗?

import { DangerZone } from 'expo';
let { Branch } = DangerZone;

React-Native Branch现在的版本为2.2.4。自测试版以来,我们对包装器进行了许多更新。你能升级到2.2.4 manually吗?