React Native打开Facebook页面

时间:2017-10-07 03:21:04

标签: android facebook react-native deep-linking react-native-linking

我一直在尝试使用React Native Linking API打开Facebook页面。它对我不起作用。我确实安装了Facebook应用程序。这是我试过的:

Linking.openURL('fb://page/<page_name>');
Linking.openURL('fb://profile/<profile_name>');
Linking.openURL('http://facebook.com/<page_name>');

我还尝试使用Communications库:Communications.web(url)。没有适用于Facebook和Instagram。然而,它就像谷歌地图,苹果地图,推特和其他大家伙的魅力。

我想知道我是做错了什么,或者我们应该向Facebook的那些人发送一些Android文章,了解如何在他们的应用程序中正确实现深层链接?他们显然不知道他们在做什么。

5 个答案:

答案 0 :(得分:4)

好的,找到了打开Facebook的一种方法:

Linking.openURL('https://www.facebook.com/n/?YOUR_PAGE_NAME');
Linking.openURL('http://instagram.com/_u/USER_NAME');
Linking.openURL('http://instagram.com/_p/PICTURE');
如果你删除&#34; www&#34; Facebook将无法运作顺便说一句。

答案 1 :(得分:1)

我遇到了同样的问题,但无法解决。我有多个带有onpress操作的onPress= {()=> Linking.openURL("https://www.SOME_SOCIAL.NETWORK")}操作的社交按钮,链接到Twitter,Instagram和SnapChat的按钮都打开了该应用程序(如果已安装),或者在Safari中打开了一个网页(如果未安装该应用程序)。唯一的异常是Facebook。给定onPress= {()=> Linking.openURL("https://www.facebook.com/")}之类的紧急操作,即使安装了应用程序,该链接也将始终在Safari中打开。

由于这种奇怪的行为,我正在这样处理Facebook链接的onpress操作:

```

  Linking.canOpenURL("fb://profile/XXXXXX").then(supported => {
    if (supported) {
      return Linking.openURL("fb://profile/XXXXXX");
    } else {
      return Linking.openURL("https://www.facebook.com/");
    }
  })

```

上面的代码无法按预期工作,但似乎没有其他作用。

答案 2 :(得分:0)

通常,在尝试打开iOS之前,您应该检查Linking.canOpenURL()

另外,请确保在info.plist中将协议添加为数组:

<key>LSApplicationQueriesSchemes</key>
<array>
  <string>fb</string>
</array>

您也可以在info.plist中的Xcode项目中执行此操作。

答案 3 :(得分:0)

更新-2019年5月

// open via app

fb://facewebmodal/f?href=PAGE_NAME

答案 4 :(得分:0)

这里没有任何内容适合我,但是经过一些随机尝试,我发现此解决方案有效:

dataframe.columns = [x + forecaster.split('.')[0] for x in dataframe.columns]

如果您正在寻找自己的pageid,这是一个小教程: https://roadtoblogging.com/get-facebook-page-id/