BeB*_*ley 6 android manifest android-intent android-activity
我试图在用户浏览某个网址时启动我的应用程序.我找到了一些例子,它们在清单中都有相同的东西,但它对我不起作用.我已将intent-filter放在Activity和Receiver下.
这是我的清单片段:
<intent-filter>
<action android:name="android.intent.action.VIEW"></action>
<category android:name="android.intent.category.DEFAULT"></category>
<category android:name="android.intent.category.BROWSABLE"></category>
<data android:host="www.urbandictionary.com" android:scheme="http"></data>
</intent-filter>
Run Code Online (Sandbox Code Playgroud)
在Activity下,我尝试使用onNewIntent,当它在Receiver下时,我尝试使用onReceiveIntent,两者都使用一个简单的Log.i调用来查看它是否被触发.我没有太多运气.
我在manifest.xml文件中使用它:
<activity android:name=".SomeName">
<intent-filter>
<category android:name="android.intent.category.ALTERNATIVE" />
<action android:name="android.intent.action.VIEW" />
<category android:name="android.intent.category.DEFAULT" />
<category android:name="android.intent.category.BROWSABLE" />
<data android:host="google.com" android:scheme="http" />
</intent-filter>
</activity>
Run Code Online (Sandbox Code Playgroud)
这将启动SomeName活动.我不在android中使用www:主机部分可能会有所作为.
当活动开始时,您可以使用(例如)获取.com后面的数据:
Uri data = getIntent().getData();
if(data != null && data.getPathSegments().size() >= 2){
List<String> params = data.getPathSegments();
String somestuff = params.get(0);
}
Run Code Online (Sandbox Code Playgroud)
编辑:如果您无法从活动中检查主机,请使用以下方法:
data.getHost();
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
4417 次 |
最近记录: |