【问题标题】:Facebook on Android: target app doesn't open when clicking on linkAndroid上的Facebook:单击链接时目标应用程序未打开
【发布时间】:2017-05-19 03:06:33
【问题描述】:

我在 HTML 中包含了正确的应用链接元标记,这样通过在 Facebook 上点击该链接,Android 和 iOS 应用就会以正确的内容打开。

这是一个页面示例: https://trenit.info/L2o

<meta property="al:ios:url" content="https://trenit.info/L2o" />
<meta property="al:ios:app_store_id" content="1058908183" />
<meta property="al:ios:app_name" content="Trenit!" />
<meta property="al:android:url" content="https://trenit.info/L2o" />
<meta property="al:android:app_name" content="Trenit!" />
<meta property="al:android:package" content="eu.baroncelli.oraritrenitalia" />

我在 Facebook 上发布了该链接,并安装了 Trenìt!我的 Android 和 iOS 设备上的应用程序。

在 iOS 上
如果我使用 Facebook 应用程序并单击该链接,Trenìt!带有该内容的 iOS 应用可以正确打开。

在 Android 上
如果我使用 Facebook 应用程序并单击该链接,将打开 HTML 页面而不是 Trenìt!安卓应用。

我做错了吗?

请注意,我已经在 Android 清单中指定了这个意图过滤器:

        <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="https" android:host="trenit.info" />
        </intent-filter>

【问题讨论】:

  • al:ios:url 和 al:android:url 应该是应用链接而不是 https/http 链接
  • iOS 和 Android 应用程序都响应 https 通用链接。知道如何让 Android 应用正确打开吗?
  • 很确定您需要使用应用链接而不是 https/http 链接
  • 有谁知道我怎样才能通过 https 链接正确打开 Android 应用程序?
  • 这是不可能的。您需要使用为您的应用创建的 URL 方案,如 FB 应用链接文档中所述。

标签: android facebook facebook-graph-api facebook-opengraph applinks


【解决方案1】:

我最近在我的应用中实现了相同的功能,并且运行正常。

根据 Facebook documentation,您在网站页面中的标签不正确,对于 android 应该是这样的

<meta property="al:android:url" content="trenit://L2o/*" />
<meta property="al:android:app_name" content="Trenit!" />
<meta property="al:android:package" content="eu.baroncelli.oraritrenitalia" />

在你的清单中应该是这样的

       <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="trenit" />
        </intent-filter>

【讨论】:

  • 嗨 Adeel,我在 Android 意图过滤器中添加了:&lt;data android:scheme="trenit" android:host="trip" /&gt;,在 HTML 页面中添加了 &lt;meta property="al:android:url" content="trenit://trip/L2o" /&gt;。当通过 Facebook 聊天分享并从 Android Facebook Messenger 应用程序中单击它时,它实际上可以工作(即显示 Andoid 应用程序选择对话框)。但是,如果我将它分享到我的 Facebook 个人资料时间线,并从 Android Facebook 应用程序中单击它,HTML 页面将打开,而不会显示 Android 应用程序选择对话框。你真的可以让它在 Facebook Android 应用上运行吗?
  • @DanieleB 是的,我通过 Facebook 应用打开了我的应用,您必须在要从 Facebook 打开的每个页面上添加元标记。
  • 很遗憾它不适用于 Facebook 应用,所以我仍在努力寻找解决方案
  • 我想我已经正确添加了标签? developers.facebook.com/tools/debug/sharing/… 我还需要在 Facebook 开发者应用设置中设置深度链接吗?我似乎找不到任何这样的设置
【解决方案2】:

在 android 中要从外部链接/短信打开您的应用程序..,您必须在您的应用程序中使用深层链接。这样您的应用就会显示在选择启动器对话框中,您可以在其中选择要打开的应用
请关注以下开发者链接
https://developer.android.com/training/app-indexing/deep-linking.html

下面的 xml 只是为了理解。请相应更改

<activity android:name="--YourActivityName--" android:label="--your app lable--" > <intent-filter android:label="@string/filter_title"> <action android:name="android.intent.action.VIEW" /> <category android:name="android.intent.category.DEFAULT" /> <category android:name="android.intent.category.BROWSABLE" /> <!-- Accepts URIs that begin with "https://trenit.info/L2o” --> <data android:scheme="https" android:host="trenit.info" android:pathPrefix="/L2o" /> </intent-filter> </activity>

【讨论】:

  • 我已经在 Android 清单中指定了这一点。我刚刚将此添加到问题中。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-11-16
  • 1970-01-01
  • 1970-01-01
  • 2023-03-19
  • 2019-09-14
  • 1970-01-01
相关资源
最近更新 更多