如何打开具有scheme意图的URL://on react native



我有一个带有webview的react原生移动应用程序。在网络视图中,我添加了facebook信使聊天插件,这样我的用户可以在需要帮助时轻松联系我们。

如果你通过移动浏览器运行网站,它就可以工作。它会将你重定向到官方信使。

但当你通过react native webview运行它时,它不知怎么地说没有找到处理Intent 的活动

这是我如何处理打开意向的代码

onShouldStartLoadWithRequest={(request) => {
let url = request.url   
if(url.startsWith('intent:')){
Linking.openURL(url).catch(er => {
console.log(er)
alert("Failed to open URL")
});
return false
}else{
return true
}   
}}

这将控制台日志

[错误:无法打开URL'intent://user/107571147455693/?intent_trigger=mme&nav=发现&source=customer_chat_plugin&source_id=1507329&元数据=%7B%22referr_uri%22%3A%22https%3A%5C%2F%5C%2Ffusontechph.com%5 C%2Ff9fe1863270a2%22%7D#意向;scheme=fb信使;package=com.facebook.orga;结束':找不到处理Intent{act=android.Intent.action.VIEW的活动dat=intent://user/107571147455693/?intent_trigger=mme&nav=发现&source=customer_chat_plugin&source_id=1507329&元数据={"referer_uri":";https://fusiontechph.com/f9fe1863270a2"}flg=0x100000000}]

我有一个变通方法,它对我有效。Facebook信使提供了一个指向你的Facebook页面消息的链接。所以你可以直接打开链接,而不使用facebook的意图方案。这里是最终代码

onShouldStartLoadWithRequest={(request) => {
let url = request.url   

if(url.startsWith('intent:')){
Linking.openURL('https://m.me/mluc.jsites').catch(e=>{                             
console.log(e) })
return false
}else{
return true
}   
}}

最新更新