如何打开 URL 方案 intent:// on react native

How to open URL with scheme intent:// on react native

我有一个带有 webview 的 React 本机移动应用程序。在 webview 中,我添加了 facebook messenger 聊天插件,这样我的用户可以在需要帮助时轻松联系我们。

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

但是当你 运行 它以某种方式反应本机 webview 时它说没有 activity 发现处理 Intent

这是我如何处理打开 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
    }   
}}

这将控制台日志

[Error: Could not open URL 'intent://user/107571147455693/?intent_trigger=mme&nav=discover&source=customer_chat_plugin&source_id=1507329&metadata=%7B%22referer_uri%22%3A%22https%3A%5C%2F%5C%2Ffusiontechph.com%5C%2Ff9fe1863270a2%22%7D#Intent;scheme=fb-messenger;package=com.facebook.orca;end': No Activity found to handle Intent { act=android.intent.action.VIEW dat=intent://user/107571147455693/?intent_trigger=mme&nav=discover&source=customer_chat_plugin&source_id=1507329&metadata={"referer_uri":"https://fusiontechph.com/f9fe1863270a2"} flg=0x10000000 }]

我有一个适合我的解决方法。 Facebook Messenger 向您的 Facebook 页面消息提供 link。所以你可以直接打开link而不使用facebook的intent scheme这里是最终代码

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
    }   
}}