【问题标题】:facebook deep linking androidfacebook 深度链接 android
【发布时间】:2015-06-25 16:06:20
【问题描述】:

我无法将我的应用深度链接到 Facebook。

我有一个 Facebook 应用链接 https://fb.me/744XXXXXXXXXXX

自定义方案的url是

“appName://share”

包名是

com.appName.app

应该接收此意图的活动的意图过滤器是

<intent-filter>
            <data android:scheme="appName"/>
            <action android:name="android.intent.action.VIEW" />
            <category android:name="android.intent.category.DEFAULT" />
            <category android:name="android.intent.category.BROWSABLE" />

但我不知道如何准备将有关共享项目的信息带到 facebook 的意图。

我从here 下载的 facebook 深度链接示例应用程序提供了这样的链接

http://primenumber.parseapp.com/number?id=7

意图过滤器看起来像这样

<intent-filter>
            <action android:name="android.intent.action.VIEW" />
            <category android:name="android.intent.category.DEFAULT"/>
            <category android:name="android.intent.category.BROWSABLE" />
            <data android:scheme="primenumber-sample-app"/>
<intent-filter/>

我所要做的就是分享上面提到的链接,当我点击 Facebook 应用程序中的共享链接时,示例应用程序就会打开。 如何准备示例应用中给出的链接?

如果我必须创建一个可以使用其他应用程序共享数据的选择器意图,那么传出意图应该是什么样的? 我已阅读并尝试了解 facebook sdk 文档,但我不知道如何继续。

【问题讨论】:

标签: android facebook facebook-graph-api android-intent


【解决方案1】:

澄清一下,您正在尝试使用 facebook SDK 在您的 android 应用程序中使用 facebook 的 App Links,以便您注册的 facebook 页面/应用程序托管的任何链接/图表打开您的 android 应用程序活动并处理基于 URL在解析指定的路径上。

    @Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    FacebookSdk.sdkInitialize(this); 
    ...
    Uri targetUrl =
      AppLinks.getTargetUrlFromInboundIntent(this, getIntent());
    if (targetUrl != null) {
        Log.i("Activity", "App Link Target URL: " + targetUrl.toString());
    }
}

此外,深度链接是只有 Google 才使用托管的 './well-known/' 应用程序和网站之间的绑定来调用其新的棉花糖功能。

【讨论】: