2

这似乎是一个典型的问题,并且似乎有很多不同的行为,但我遇到的问题是我的方案将启动选择器并允许我在点击电子邮件或电子邮件中的链接时选择我的应用程序注意设备上,但如果我点击网页上的链接,我似乎无法启动应用程序,甚至没有选择器(我检查了两个浏览器的“默认值”并且没有设置) .

<activity
                android:name=".MyActivity" 
                android:exported="true"
                android:enabled="true">
                <intent-filter>
                    <data android:scheme="http" android:host="www.website.com"/>
                    <data android:scheme="http" android:host="website.com"/>
                    <action android:name="android.intent.action.VIEW" />
                    <category android:name="android.intent.category.DEFAULT" />
                    <category android:name="android.intent.category.BROWSABLE" />
                </intent-filter>
    </activity>

如果我使用下面的电子邮件中的一个链接,它会给我选择器,启动我的应用程序,一切都很好,但是,在网络浏览器中点击相同的链接只会启动没有选择器的页面。关于问题可能是什么的任何建议?

http://www.website.com/share.aspx?id=12345678

使用 Chrome 和股票浏览器在运行 ICS 4.0.3 的 GS2 上进行测试。

4

2 回答 2

2

添加 android:pathPrefix 属性。

<data android:scheme="http" android:host="website.com" android:pathPrefix="/" />
于 2012-11-17T01:29:35.557 回答
2

这就是我最终解决它的方法:

<intent-filter>
            <data
                android:host="www.website.com"
                android:pathPattern=".*\\share.aspx"
                android:scheme="http" />
            <data
                android:host="website.com"
                android:pathPattern=".*\\share.aspx"
                android:scheme="http" />

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

            <category android:name="android.intent.category.BROWSABLE" />
            <category android:name="android.intent.category.DEFAULT" />
        </intent-filter>

还将以下内容添加到 Activity 标记中:

android:exported="true"

有两个地址的原因是应用程序可以选择规范域(带/不带 www.)。

于 2013-05-17T10:11:52.373 回答