我构建了一个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"/>
答案 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 。
希望这对您有所帮助。我希望您的代码块更加清晰。因此,如果您感到困惑,请发表评论。