当应用程序在后台打开时,如何打开 React Native Android 深层链接?

Ale*_*x L 5 android reactjs react-native

我想在应用程序在后台打开时打开 React Native Android 深层链接。以下是我处理其他类似案例的方法:

iOS App 在后台打开: Linking.addEventListener('url', this.handleOpenURL);

iOS 应用程序在后台关闭 Linking.getInitialURL().then(url => this.handleOpenURL({ url }));

Android 应用程序在后台打开: ? - 处理此案的最佳方法是什么?

Android 应用程序在后台关闭: Linking.getInitialURL().then(url => this.handleOpenURL({ url }));

And*_*zee 3

React Native Linking 似乎不适用于在后台运行的 android。您可以使用本机 Android 代码来解决此问题。在主活动中重写方法如下:

    @Override
public void onNewIntent(Intent intent) {
    if(intent.getData() != null) {
        Uri deepLinkURL = intent.getData();
        DeepLink deepLink = new DeepLink(deepLinkURL.toString());
    }
}
Run Code Online (Sandbox Code Playgroud)

然后你需要做的就是将此 java 代码与 React Native javascript 集成。这可以通过本机反应 - 本机模块来完成。网站上有一些关于它的文档。为了使其成为更有效的解决方案,您可以使用http://square.github.io/otto/之类的东西来创建一个监听该深度链接对象的事件总线。然后,一旦事件发生,深度链接事件就会有效地触发。我希望这对人有帮助:)