2014-06-19 34 views
0

我试图实现一个意图过滤器,但出于某种原因(我不知道)可以成功。从浏览器中打开现有或新的活动

我宣布以下列方式活动:

<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> 

浏览器尝试打开的URI像myapp://terms-signed.com/?documentKey=SOME-HEX

无论我是否在浏览器地址栏,或者如果把这样的URI我在一个类似的挖掘链接在HTML页面中,没有任何反应。

没有显示选择器,我的应用程序并不是最重要的,如果Android没有运行,它不会启动我的应用程序。没有。只有浏览器显示带有消息的页面,该地址的网页可能会暂时关闭等。

我正在使用Android 4.2.1/Galaxy Nexus。

可以做些什么来完成这项工作?

回答

1

从pathPrefix中删除?,它不是路径的一部分。也许你甚至可以删除整个pathPrefix参数,因为在主机之后没有任何路径。

编辑2:正如在评论中可以看出,另外从主机声明中删除连字符和.com解决了问题。我最好的猜测是浏览器会将URI视为Web URI,因为它是.com,无论它是否使用自定义方案。

+0

不幸的是,它没有帮助。我试图删除'?'和'pathPrefix' - 没有任何改变。 – Bobrovsky

+0

在我的答案中增加了一些额外的想法,也许他们会帮助 – tknell

+0

谢谢,但这也不起作用。我一定在做一些非常错误的事情。 – Bobrovsky

相关问题