(react-native-deep-link)使用传入链接问题触发应用程序(playstore url)

问题描述 投票:1回答:1

我构建了一个API,可以重定向到playstore中的相应applink。在互联网浏览器中使用API​​时,它不会打开应用程序,而是打开网页。

我使用下面的代码:

AndroidManifest.xml中

<intent-filter android:label="filter_react_native">
      <action android:name="android.intent.action.VIEW" />
      <category android:name="android.intent.category.DEFAULT"/>
      <category android:name="android.intent.category.BROWSABLE" />
      <data android:host="scoutnex-deeplink.herokuapp.com" android:scheme="https" android:pathPrefix="/scoutnex"/>
</intent-filter>

App.js

componentDidMount(){
   Linking.getInitialURL()
      .then(url => this.handleOpenURL({ url }))
      .catch(console.error);
   Linking.addEventListener("url", this.handleOpenURL);
}

如果我使用类似下面的代码,互联网浏览器会提示使用url peopleapp://people打开外部应用程序的请求。

<data android:host="people" android:scheme="peopleapp"/>
android react-native react-native-android deep-linking
1个回答
0
投票
> <intent-filter android:label="filter_react_native">
>           <action android:name="android.intent.action.VIEW" />
>           <category android:name="android.intent.category.DEFAULT"/>
>           <category android:name="android.intent.category.BROWSABLE" />
>           <data android:host="scoutnex-deeplink.herokuapp.com" android:scheme="https" android:pathPrefix="/scoutnex"/>
>     </intent-filter>

uri生成将是https://scoutnex-deeplink.herokuapp.com/scoutnex

对于

低于数据意图

> <data android:host="people" android:scheme="peopleapp"/>

uri生成的将是peopleapp:// people

请检查您是否使用路由器,如果是,那么您应该在堆栈导航器中有人屏幕。

最后,

为了测试您的意图数据uri的最佳方法是:

1)如果尚未完成,请卸载现有应用程序。

2)再次同步和构建代码。

3)使用uri peopleapp:// people在您的应用中调用webview。

4)它应该工作。

5)如果您使用模拟器检查android here提供的以下链接

6)在终端中运行此命令(尝试adb设备进行测试)。

> $ adb shell am start
>         -W -a android.intent.action.VIEW
>         -d <URI> <PACKAGE>

7)URI将是peopleapp:// people

8)PACKAGE将是您的包/应用程序/名称,即.. @ string / app_name。

希望这对你有所帮助。我希望你的代码块更清晰。如果你发现它令人困惑,请评论。

© www.soinside.com 2019 - 2024. All rights reserved.