单击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
答案 0 :(得分:0)
看起来分支未正确初始化。你能用这个声明确认你已经导入了吗?
import { DangerZone } from 'expo';
let { Branch } = DangerZone;
React-Native Branch现在的版本为2.2.4。自测试版以来,我们对包装器进行了许多更新。你能升级到2.2.4 manually吗?