深层链接无法在http方案中打开应用程序

时间:2017-09-04 11:14:00

标签: android deep-linking android-7.0-nougat android-7.1-nougat

我已在清单文件中的应用程序中实现了深层链接,我已经定义了intent-filter这样的

<activity
        android:name=".activity.ProfilePreviewActivity"
        android:theme="@style/AppTheme.ActionBar.Transparent">
        <intent-filter android:autoVerify="true" android:label="@string/app_name"
                       tools:targetApi="m">
            <action android:name="android.intent.action.VIEW"/>
            <category android:name="android.intent.category.BROWSABLE"/>
            <category android:name="android.intent.category.DEFAULT"/>
            <data android:host="appsdata2.cloudapp.net"
                  android:scheme="https"
            />
        </intent-filter>
        <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:host="appsdata2.cloudapp.net"
                android:scheme="http"
            />
        </intent-filter>

 </activity>

现在问题是:

我为两者定义了方案,并添加了android:autoVerify="true"

在Android 6.0.1中使用app install

https计划 - 网址打开应用并完美无缺

http方案 - 网址打开浏览器不是实际的应用程序?我错过了什么吗?

我关注https://stackoverflow.com/a/39486914/1293313但没有运气

和在Android 7.1.1中使用应用安装

https计划 - 网址打开应用程序,工作完美 http方案 - 网址打开应用程序和工作完美(编辑)

1 个答案:

答案 0 :(得分:0)

首先检查链接是否可以通过adb访问:

adb shell am start -n com.example.simon.test/.activity.ProfilePreviewActivity

只需尝试以下代码,因为Chrome在打开链接方面存在一些问题。

<activity
         android:name=".activity.ProfilePreviewActivity"
         android:theme="@style/AppTheme.ActionBar.Transparent">

    <!-- For chrome links -->
    <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:host="appsdata2.cloudapp.net"
               android:scheme="http"
               android:pathPrefix="/"/>
    </intent-filter>

    <!-- For adb -->
    <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:host="appsdata2.cloudapp.net"
            android:scheme="http"/>
    </intent-filter>

 </activity>

尝试从浏览器<a href="http://appsdata2.cloudapp.net"></a>

测试链接