我正在尝试实现一个意图过滤器,但由于某种原因(我不知道)可以成功。
我以下列方式宣布活动:
<activity
android:name="com.example.StartActivity"
android:label="@string/start_activity_title"
android:windowSoftInputMode="adjustPan"
android:exported="true">
<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="myapp"
android:host="terms-signed.com"
android:pathPrefix="/?"/>
</intent-filter>
</activity>
浏览器尝试打开myapp://terms-signed.com/?documentKey=SOME-HEX
无论我将这样的URI放在浏览器地址字段中,还是点击HTML页面中的类似链接,都不会发生任何事情。
没有显示选择器,我的应用程序不会成为最重要的,如果Android没有运行,Android不会启动我的应用程序。没有。只有浏览器显示页面,其中包含该地址的网页可能暂时关闭的消息等。
我使用的是Android 4.2.1 / Galaxy Nexus。
可以做些什么来完成这项工作?
答案 0 :(得分:1)
从pathPrefix中删除?
,它不是路径的一部分。也许您甚至可以删除整个pathPrefix参数,因为您在主机之后没有任何路径。
Edit2:正如在评论中可以看到的那样,另外从主机声明中删除连字符和.com解决了这个问题。我最好的猜测是,由于.com,浏览器会将URI视为Web URI,无论它是否使用自定义方案。