我想从自定义网址方案启动我的应用。我检查了dev android上的深层链接部分,这里是我的代码片段。虽然看起来像这样的URL,但似乎没有:myApp://?host = myhost.com
清单:
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
<category android:name="android.intent.category.BROWSABLE" />
<data android:scheme="myApp" />
</intent-filter>
在我的主要活动中,我有:
Intent intent = getIntent();
Uri uri = intent.getData();
if (uri != null) {
String host = uri.getQueryParameter("host");
}
当我的电子邮件将网址作为超链接时,应用程序无法启动。 另外,测试这个的好方法是什么?
答案 0 :(得分:1)
试试这个,编辑IntentFilter
<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.youtube.com" android:scheme="http"></data>
</intent-filter>
修改强>
<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"></action>
<category android:name="android.intent.category.DEFAULT"></category>
<category android:name="android.intent.category.BROWSABLE"></category>
<data android:host="www.youtube.com" android:scheme="http"></data>
</intent-filter>
答案 1 :(得分:1)
浏览器将方案转换为小写,因此您需要将数据标记更改为
<data android:scheme="myapp"/>
答案 2 :(得分:0)
看起来ACTION_VIEW似乎是支持自定义URI方案的必需品。我可以添加VIEW和MAIN,虽然它可以让它工作。