我已经将我的应用程序与方案example:// test /:id进行了深层链接。我想将其转换为www.someurl.com/test/:id,但是不知道如何执行此操作。 我想将其设为可以共享的链接,并打开诸如https://shrts.in/JRnN之类的应用。
componentDidMount() {
DeepLinking.addScheme('example://');
Linking.addEventListener('url', this.handleUrl);
DeepLinking.addRoute('/test/:id', (response) => {
// example://test/23
this.props.navigation.navigate('Article',{id:response});
});
Linking.getInitialURL().then((url) => {
if (url) {
Linking.openURL(url);
}
}).catch(err => console.error('An error occurred', err));
}
componentWillUnmount() {
Linking.removeEventListener('url', this.handleUrl);
}
handleUrl = ({ url }) => {
Linking.canOpenURL(url).then((supported) => {
if (supported) {
DeepLinking.evaluateUrl(url);
}
});
}
还有改进的空间,我还是比较陌生的。网上的所有参考文献都已经过时了。我可以使用adb这样的程序来打开此应用
adb shell am start -W -a android.intent.action.VIEW -d "example://test/346" com.app
但是我想从一个URL上打开它,我可以在浏览器中输入类似www.someurl.com/test/:id的内容,前提是我托管了我的网站
<intent-filter >
<action android:name="android.intent.action.VIEW" />
<category android:name="android.intent.category.DEFAULT" />
<category android:name="android.intent.category.BROWSABLE" />
<data android:pathPattern="/.*"></data>
<data android:scheme="example" android:host="test" />
</intent-filter>
答案 0 :(得分:0)
https://developer.android.com/training/app-links/deep-linking#adding-filters这是android上的Deeplink的官方文档。 抱歉,我不是第一次测试!
Error in downloadBitmap - java.net.MalformedURLException: Unknown protocol: content
尝试添加另一个Intent过滤器。然后使用
<intent-filter >
<action android:name="android.intent.action.VIEW" />
<category android:name="android.intent.category.DEFAULT" />
<category android:name="android.intent.category.BROWSABLE" />
<!-- Accepts URIs that begin with "example://gizmos” -->
<data android:scheme="example"
android:host="test" />
</intent-filter>
打开应用程序。现在看来您无法通过直接在浏览器中输入来打开应用程序。但是尝试编写html文件并在其中添加链接一个标签,您会发现该应用已打开!