当从whatsapp或facebook等外部应用程序点击链接时,如何启动我的Android应用程序?

时间:2017-08-18 05:22:51

标签: android deep-linking intentfilter

我在清单文件中使用了以下意图过滤器,使用了深层链接概念。

<activity
        android:name=".MyActivity"
        android:screenOrientation="portrait"
        android:windowSoftInputMode="stateAlwaysHidden" >
        <intent-filter android:label="@string/app_name">
            <action android:name="android.intent.action.VIEW" />
            <category android:name="android.intent.category.DEFAULT" />
            <category android:name="android.intent.category.BROWSABLE" />
            <data
                android:host="test.myapp.com"
                android:scheme="http"
                />
        </intent-filter>
    </activity>

这有助于我在点击应用中的链接时显示我的应用, 但它显示列表中的其他应用程序,如chrome,Internet等。 如何在点击其他应用程序中的链接后直接访问我的应用程序,例如什么应用程序。

2 个答案:

答案 0 :(得分:1)

我唯一的想法是添加一个意图过滤器,如果设备打开一个特殊的URL(例如www.your-project.com),它会启动你的应用程序。看看这个 documentation它解释了与您的应用相关联的所有社交网站。

如果用户安装了您的应用,则点击该链接即可打开您的应用。否则,链接将由您的默认浏览器打开。

答案 1 :(得分:0)

您想要实现的目标只能来自Android 6.0,在Android 6.0中您可以绕过Intent选择器对话框,并在点击链接时直接启动您的应用程序。

为此,请查看此App link文档。他们已经很好地解释了如何做到这一点

并且您可能需要通过添加参数android:autoVerify="true"

在intent过滤器中稍作修改,如下所示
<activity ...>

<intent-filter android:autoVerify="true">
    <action android:name="android.intent.action.VIEW" />
    <category android:name="android.intent.category.DEFAULT" />
    <category android:name="android.intent.category.BROWSABLE" />
    <data android:scheme="http" android:host="www.example.com" />
    <data android:scheme="https" />
</intent-filter>