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

时间:2019-03-25 13:49:19

标签: android react-native react-native-android deep-linking

我构建了一个API,该API重定向到Playstore中的相应applink。在Internet浏览器中使用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"/>

1 个答案:

答案 0 :(得分: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 在您的应用中调用网络视图。

4)应该可以。

5)如果您使用的是模拟器,请检查android here

提供的以下链接

6)在您的终端上运行此程序(尝试 adb设备进行测试)。

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

7)URI将为 peopleapp:// people

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

希望这对您有所帮助。我希望您的代码块更加清晰。因此,如果您感到困惑,请发表评论。