12

我一直在尝试使用 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 文章?他们显然不知道自己在做什么。

4

6 回答 6

18

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

Linking.openURL('fb://page/PAGE_ID');
Linking.openURL('http://instagram.com/_u/USER_NAME');
Linking.openURL('http://instagram.com/_p/PICTURE');
于 2017-10-07T03:32:09.517 回答
6

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

此外,请确保将您的协议作为数组添加info.plist为:

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

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

于 2018-02-12T18:20:29.983 回答
5

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

由于这种奇怪的行为,我正在处理我onpress对 Facebook 链接的操作,如下所示:

```

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

```

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

于 2018-09-17T17:46:53.427 回答
1

更新 - 2019 年 5 月

// open via app

fb://facewebmodal/f?href=PAGE_NAME
于 2019-05-10T14:51:39.767 回答
1

根据文档https://reactnative.dev/docs/linking#canopenurl。对于 android,Promise 可以被拒绝。这是我为iOSandroid处理这个问题的方法

import { Linking } from 'react-native';

const handleOpenLink = async (url) => {
  try {
    await Linking.openURL(url);
  } catch {
    throw new Error('URI cant open:' + url);
  }
};
于 2021-09-07T13:36:27.073 回答
0

这里没有任何东西对我有用,但是通过一些随机尝试,我发现这个解决方案有效:

Linking.openURL('fb://page/<ID-PAGE>');

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

于 2019-07-08T14:10:18.447 回答