如何在React Native上使用方案intent://打开URL

时间:2020-10-14 02:32:50

标签: react-native react-native-android facebook-javascript-sdk

我有一个带有Webview的React Native移动应用。在网络视图中,我添加了facebook Messenger聊天插件,以便我的用户在需要帮助时可以轻松地与我们联系。

如果您通过移动浏览器运行该网站,则该网站有效。它将您重定向到正式的Messenger。

但是当您通过响应本机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 = discover&source = customer_chat_plugin&source_id = 1507329&metadata =%7B%22referer_uri%22%3A%22https%3A%5C%2F%5C%2Ffusiontechph.com%5C%2FF9fe #Intent; scheme = fb-messenger; package = com.facebook.orca; end': 找不到用于处理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}]

1 个答案:

答案 0 :(得分:0)

我有一个对我有用的解决方法。 Facebook Messenger提供了指向您的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
    }   
}}
相关问题