当我从浏览器中单击html页面的链接时,我想广播我的自定义意图。我知道android系统会为此广播“ android.intent.action.VIEW”,并且我可以在我的应用程序中接收到它,但是这样做会列出每个可点击链接的应用程序,因此我想广播自己的自定义意图操作。
我已经解决了以下问题
用这一行创建test.html文件
<a href="intent://example.com/test?id=12345#Intent;scheme=myapp;package=com.mypackage;end">Open Your Application Directly</a>
这"example.com/test?id=12345"
可以是您想要在我们的onCreate()
方法中将其作为意图数据传递的任何东西,因此我给出了ID。
"scheme"
可以是我们需要在menifest.xml中为intent-filter编写相同方案的任何字符串
"package"
是您的应用程序包名称,以使其与具有相同方案的其他应用程序区分开
注意:如果未在设备中安装应用,则它将使用给定的有效包名称打开google playstore
在AndroidMenifest.xml文件中
<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="myapp" />
</intent-filter>
您可以为启动器活动提供的任何活动添加意图过滤器,请注意,<data android:scheme="myapp" />
方案名称必须与之前在HTML文件中指定的名称相同。
完毕!在您设备的任何浏览器中打开html文件并点击链接,它将直接打开您的应用。
您可以通过活动的onCreate()
方法获取意图数据,例如
Intent intent = getIntent();
if (intent != null && intent.getData() != null) {
Uri data = intent.getData();
String path = data.getPath();
String id = data.getQueryParameter("id");
Log.d("ID", ": " + id);
}
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句