如何在 React Native 中分享社交网络上的深层链接

Posted

技术标签:

【中文标题】如何在 React Native 中分享社交网络上的深层链接【英文标题】:How to share a deep link on social networks in react native 【发布时间】:2017-11-05 13:44:23 【问题描述】:

正如标题所说,我想知道是否有办法在社交网络中分享 URL 深层链接(例如:twitter、facebook、whatsaap 等)。我正在使用这个库react-native-share,但由于它不是 Web URL,而是来自应用程序的 URL(URL 类似于:myapp://app/1(最后一部分是我必须发送的参数)) 消息不显示为超链接,而只是一个简单的字符串,就像社交网络中的普通消息一样。我尝试使用 javascript 中的 .link 函数将文本作为链接,但这仅适用于网络浏览器,我想知道是否有另一种方法可以完成此操作,或者您是否知道如何将消息转换为可点击的链接。我只是希望其他应用程序将其识别为链接并让它在网络浏览器上打开,这样它就会打开我正在开发的应用程序。

【问题讨论】:

我也遇到了同样的问题...您找到解决方案了吗? 【参考方案1】:

您需要先在您的 androidManifest.xml 中添加此意图过滤器。

<activity
    [...]

    <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:scheme="http"
            android:host="www.your-domain.com"
            android:pathPrefix="/new/9/read" />
      <data android:scheme="appname"
            android:host="yourhost" />
    </intent-filter>

然后您可以使用 react-native 提供的Linking API 来处理您的深层链接。

例如:

componentDidMount() 
  Linking.getInitialURL().then((url) => 
    if (url) 
      console.log('Initial url is: ' + url);
    
  ).catch(err => console.error('An error occurred', err));

【讨论】:

我已经这样做了。深度链接完美运行,我要求的是一种将 URL 分享到 facebook 或 whatsaap 等社交网络的方法,因为它不是作为超链接而是作为普通文本分享,所以人们不能点击它和进入应用的特定部分。 您能补充说明您是如何解决的吗? @MarcoPortillo 你能分享一下你是如何解决这个问题的代码吗?我也面临同样的问题。 react-native-share 中的文本不可点击。 @MarcoPortillo:我也很想知道你是如何解决它的!【参考方案2】:

您可以使用 FBSDK 并使用ShareDialog.share(contentHere)

Reference

【讨论】:

以上是关于如何在 React Native 中分享社交网络上的深层链接的主要内容,如果未能解决你的问题,请参考以下文章

如何在 iOS 上整合社交媒体进行照片分享?

如何在 facebook SDK 中分享视频?

如何在 react-native App 上获取推送通知?

React-native - 如何在 android 上监控原生端生成的网络请求?

如何在 Facebook 上的 iPhone 应用程序中分享我的页面内容?

如何在 iOS(Objective-C)中分享到 Facebook Messenger 应用程序的链接?