0

我正在创建一个意图过滤器,以便过滤我的应用程序网址,例如https://www.hotelsclick.com/?hotel_id=135738

我在文档中看到我应该创建一个意图过滤器,例如

 <intent-filter android:label="@string/filter_title_viewgizmos">
     <action android:name="android.intent.action.VIEW" />
     <!-- Accepts URIs that begin with "http://example.com/gizmos” -->
     <data android:scheme="http"
           android:host="example.com"
           android:pathPrefix="/gizmos" />
     <category android:name="android.intent.category.DEFAULT" />
     <category android:name="android.intent.category.BROWSABLE" />
 </intent-filter>

此意图过滤器应过滤 URL,例如“ http://example.com/gizmos?1234http://example.com/gizmos/1234http://example.com/gizmos/toys/1234

这很好,但是...我的 URL 不同,它就像http://example.com?toys=1234,因为它在主页中有一个命名的 GET 参数,即hotel_id。

如何过滤此类 URL?是否有更多参数可以放入意图过滤器定义中?

编辑:我将以下意图过滤器放入我的 Manifest.xml

        <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:scheme="https"
                android:host="hotelsclick.com" />
            <data android:scheme="http"
                android:host="hotelsclick.com" />
        </intent-filter>

我可以通过提供这个 ADB 命令打开应用程序

adb shell am start -a android.intent.action.VIEW -d " http://hotelsclick.com?hotel_id=135738 " com.towers.hotelsclick

但它不适用于使用深度链接工具自行生成的页面:https ://developers.google.com/app-indexing/webmasters/test?hl=it

我在editText中输入了网页的以下URI:“android-app://com.towers.hotelsclick/hotelsclick.com?hotel_id=135738”,我得到了这个页面:https ://applinktest.appspot.com/app -link.html?url=android-app%3A%2F%2Fcom.towers.hotelsclick%2Fhotelsclick.com%3Fhotel_id%3D135738

如您所见,页面中的链接是intent://#Intent;scheme=hotelsclick.com?hotel_id=135738;package=com.towers.hotelsclick;end 我希望这个intent-link由应用程序本身打开在我之前用于 adb 命令的同一部手机上单击移动设备时。但它不起作用,直接把我带到谷歌游戏商店,建议从那里打开应用程序

在此处输入图像描述

那么,既然我可以通过 ADB 使意图过滤器工作,但不能通过正确的链接,我可以说我成功了吗?

谢谢

4

1 回答 1

0

生成的链接无效。它应该是

intent://hotelsclick.com?hotel_id=135738#Intent;scheme=http;package=com.towers.hotelsclick;end

代替

intent://#Intent;scheme=hotelsclick.com?hotel_id=135738;package=com.towers.hotelsclick;end

于 2016-01-25T12:52:15.007 回答