Android深层链接适用于ADB,但不适用于浏览器

时间:2015-11-17 23:18:31

标签: android android-intent deep-linking

我正在尝试为我的应用添加深层链接。我在我的一个活动中添加了两个intent过滤器,一个过滤器用于" http"方案,另一个用于我的自定义方案(我使用"示例")。我根据此SO中的信息(Deep-linking intent does not work)为每个方案添加了一个intent过滤器,以便我可以同时处理example://testhttp://www.example.com/test类型的链接。

这是我的XML:

        <activity
    android:name="com.myapp.myapp.SplashActivity"
    android:screenOrientation="portrait"
    android:theme="@android:style/Theme.Holo.Light.NoActionBar.Fullscreen" >
    <intent-filter>
        <action android:name="android.intent.action.MAIN" />

        <category android:name="android.intent.category.LAUNCHER" />
    </intent-filter>
    <intent-filter android:label="Intent Filter label">
        <action android:name="android.intent.action.MAIN" />
        <category android:name="android.intent.category.DEFAULT" />
        <category android:name="android.intent.category.BROWSABLE" />
        <category android:name="android.intent.category.LAUNCHER" />
        <!-- Accepts URIs that begin with "http://www.example.com/test2” -->
        <data android:scheme="http"
              android:host="www.example.com"
              android:pathPrefix="/test2" />

    </intent-filter>
    <intent-filter android:label="Intent Filter label">
        <action android:name="android.intent.action.MAIN" />
        <category android:name="android.intent.category.DEFAULT" />
        <category android:name="android.intent.category.BROWSABLE" />
        <category android:name="android.intent.category.LAUNCHER" />

        <!-- Accepts URIs that begin with "example://test2” -->
        <data android:scheme="example"
              android:host="test2" />
    </intent-filter>
</activity>

我在亚行测试时正确加载:

adb shell am start -W -a android.intent.action.MAIN -d "example://test2" com.myapp.myapp

返回

Starting: Intent { act=android.intent.action.MAIN dat=example://test2 pkg=com.myapp.myapp }
Status: ok
Activity: com.myapp.myapp/com.app.myapp.SplashActivity
ThisTime: 357
TotalTime: 357
Complete

但是,我在浏览器中一无所获。当我在浏览器中尝试此操作时: &#34; example://test2&#34;在FF我得到&#34; couldn't find an app to open this link&#34;在Chrome和原生浏览器中,它为&#34; example://test2&#34;开启了新的Google搜索。

当我尝试其他风格时:&#34; http://www.example.com/test2&#34;它只是尝试在所有3个浏览器中导航到该网页。

我正在从Android Studio将应用部署到手机上。我也尝试过生成调试APK,将其发送到我的手机,然后安装。两者的结果相同。 我做错了什么?据我所知,我已经按照指南(https://developer.android.com/training/app-indexing/deep-linking.html)来写了这封信。 我的应用是否需要在商店中才能进行深层链接?

2 个答案:

答案 0 :(得分:2)

呃,我的行动是MAIN,应该是VIEW ......

<intent-filter>
        <action android:name="android.intent.action.MAIN" />

...

<intent-filter>
        <action android:name="android.intent.action.VIEW" />

答案 1 :(得分:0)

您的实施似乎是正确的,而且,如果您在设备中测试您的应用,则不需要在Playstore上提供。

您是否尝试过测试二维码?正如Google文档中所示 - https://developers.google.com/app-indexing/android/test

希望这有帮助。