我必须将我们需要的活动深层链接到两个URL,但每次我点击一个URL它同时显示两个活动,那么如何将intent-filter
设置为仅1具体的URL?
第一个网址http://www.sample.com/newcars/models/33
及其活动
<activity
android:name=".ui.activities.NewCarModelEngineActivity"
android:label="@string/newCars"
android:screenOrientation="sensorPortrait">
<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:host="sample.com"
android:pathPrefix="/newcars/engines/"
android:scheme="http"/>
<data
android:host="www.sample.com"
android:pathPrefix="/newcars/engines/"
android:scheme="http"/>
<data
android:host="newengine"
android:pathPattern="/..*/..*/..*"
android:scheme="sample"></data>
</intent-filter>
</activity>
第二个网址http://www.sample.com/usedcars/engines/9876543
及其活动
<activity
android:name=".ui.activities.UsedCarEngineDetailsActivity"
android:label="@string/usedCars"
android:screenOrientation="sensorPortrait">
<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:host="sample.com"
android:pathPrefix="/usedcars/engines/"
android:scheme="http"/>
<data
android:host="www.sample.com"
android:pathPrefix="/usedcars/engines/"
android:scheme="http"/>
<data
android:host="usedengine"
android:pathPattern="/..*/..*/..*"
android:scheme="sample"></data>
</intent-filter>
</activity>
答案 0 :(得分:0)
尝试将scheme="sample"
数据放在单独的intent过滤器中。这似乎是一个错误,但有时Android会忽略路径前缀,当另一个存在并且为空或带有通配符时。
您还可以使用host="*sample.com"
来匹配sample.com
和www.sample.com
。
您的第一项活动:
<activity
android:name=".ui.activities.NewCarModelEngineActivity"
android:label="@string/newCars"
android:screenOrientation="sensorPortrait">
<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"
android:host="*sample.com"
android:pathPrefix="/newcars/engines/" />
</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="sample"
android:host="newengine"
android:pathPattern="/..*/..*/..*" />
</intent-filter>
</activity>