Facebook上的Android:单击链接时目标应用程序无法打开

时间:2017-01-04 17:58:53

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

我在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应用。

我做错了吗?

请注意,在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>

3 个答案:

答案 0 :(得分:2)

我最近在我的应用程序中实现了相同的功能,并且它正常工作。

根据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>

答案 1 :(得分:1)

在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>

答案 2 :(得分:0)

为活动创建单独的意图过滤器,如下所示

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