打开应用程序的Android url架构
我想在用户输入url时打开应用程序。我在申请时看到了这个。例如,如果有人在浏览器中输入此url,将打开一个对话框,要求用户打开应用程序或浏览器 这是我的代码,但不起作用: 舱单:打开应用程序的Android url架构,android,Android,我想在用户输入url时打开应用程序。我在申请时看到了这个。例如,如果有人在浏览器中输入此url,将打开一个对话框,要求用户打开应用程序或浏览器 这是我的代码,但不起作用: 舱单: <activity android:name="ir.mywebsite.goblin.FistActiivty" android:label="@string/app_name" > <intent-filter> <
<activity
android:name="ir.mywebsite.goblin.FistActiivty"
android:label="@string/app_name" >
<intent-filter>
<data android:scheme="http" android:host="mywebsite.ir"/>
<action android:name="android.intent.action.VIEW" />
<category android:name="android.intent.category.DEFAULT" />
<category android:name="android.intent.category.BROWSABLE" />
</intent-filter>
</activity>
120是我想在应用程序中获取的id,它显示了数据,但首先我需要在打开url时打开应用程序
我怎样才能做到
谢谢我的建议是使用像这样的url方案mywebsite://p/120 为了处理此方案,您应该在清单中描述的主要活动中添加一个意图过滤器,如:
<!-- Activities in your Manifest -->
<activity android:name=".activities.YourMainActivity">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER"/>
</intent-filter>
<!-- url scheme -->
<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="mywebsite" />
</intent-filter>
</activity>
然后,您可以在活动中获取url,就像任何意图参数一样。下面是一个示例,您可以将其添加到活动的onStart()方法中:
if (getIntent().getExtras() != null) {
Uri data = getIntent().getData();
if (data != null) {
String scheme = data.getScheme(); // "mywebsite://"
if (!TextUtils.isEmpty(scheme) && scheme.equals("mywebsite")) {
String type = data.getHost(); // p
List<String> params = data.getPathSegments();
if (!params.isEmpty()) {
String id = params.get(0); // "120"
// DO YOUR STUFF WITH IT
}
}
}
if(getIntent().getExtras()!=null){
Uri data=getIntent().getData();
如果(数据!=null){
字符串scheme=data.getScheme();//“我的网站://”
如果(!TextUtils.isEmpty(scheme)&&scheme.equals(“我的网站”)){
字符串类型=data.getHost();//p
List params=data.getPathSegments();
如果(!params.isEmpty()){
字符串id=params.get(0);/“120”
//用它做你的事情
}
}
}
希望它能派上用场
干杯你看到这个问题了吗?@GennadiiSaprykin感谢你的回答,但它没有使用url,而是使用了类似这样的东西”myapp://.....“是的,这个答案不适合你。你想要的是一个广播接收器,或者如果你拥有一个特定的网站,并且可能有很多内容可以索引,那么“深度链接和索引”,这是谷歌在安卓系统上推出的一款新产品,对你来说甚至更好。这一款更接近你正在做的事情,但看起来你已经准备好了一切。不确定为什么它不起作用,但我现在没有时间测试它。
if (getIntent().getExtras() != null) {
Uri data = getIntent().getData();
if (data != null) {
String scheme = data.getScheme(); // "mywebsite://"
if (!TextUtils.isEmpty(scheme) && scheme.equals("mywebsite")) {
String type = data.getHost(); // p
List<String> params = data.getPathSegments();
if (!params.isEmpty()) {
String id = params.get(0); // "120"
// DO YOUR STUFF WITH IT
}
}
}