我正在尝试让我的应用程序拦截浏览器中的特定URL。以下是我在Manifest中的代码:
<activity
android:name="com.myactivity.RootActivity">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
<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="http" />
<data android:host="subdomian.maindomain.com" />
</intent-filter>
</activity>
目前工作正常,当我打开链接http://subdomain.maindomain.com/时,会出现一个对话框,其中列出了我的活动。
但是当我在如下所示的intent-filter中添加android:path
时,它会停止工作,它甚至不使用没有路径的简单URL。
<activity
android:name="com.myactivity.RootActivity">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
<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="http" />
<data android:host="subdomian.maindomain.com" />
<data android:path="myPath" />
</intent-filter>
</activity>
我在这里做错了吗?
答案 0 :(得分:2)
我使用这些链接测试了你说的内容并为我工作
<data android:scheme="http" />
<data android:host="developer.android.com" />
<data android:path="/guide/topics/manifest/data-element.html"/>
我使用的意图是
Intent browserIntent = new Intent(
Intent.ACTION_VIEW,
Uri.parse("http://developer.android.com/guide/topics/manifest/data-element.html"));
startActivity(browserIntent);
android:path
必须在您为其提供的主机网址后匹配吗?
你能指定你使用的URL吗?
阅读this链接以获取帮助