当我从浏览器点击我的html页面链接时,我想播放我的自定义意图。我知道android系统会播放" android.intent.action.VIEW"为此,我可以在我的应用程序中收到这个,但这样做会列出我的每个可点击链接的应用程序,所以我想广播我的自定义意图行动。
答案 0 :(得分:1)
我已经通过以下
解决了这个问题使用此单行创建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文件&amp;点击链接,它将直接打开您的应用程序。
您可以在活动的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);
}
答案 1 :(得分:1)
当我点击我的HTML链接时,我想广播我的自定义意图 来自浏览器的页面。
您可以通过两种方式实现,具体选择取决于您的使用案例。
<intent-filter>
以打开所选链接(您网站的链接)<a href="intent://...>
第一种方法可以让您灵活地保留网站上的链接,这也有助于deeplinking和AppIndex。第二种方法将改变网站中的所有链接。
我知道android系统会播放&#34; android.intent.action.VIEW&#34;对于 这个,我可以在我的应用程序中收到这个,但这样做会列出 我的每个可点击链接的应用程序,所以我想播放我的 自定义意图行动。
它不会为网络上的每个可点击链接列出您的应用程序,它只会为您的网站链接打开您的应用程序。如果您不想这样做而只打开网站某个特定链接的应用,则应使用上述方法2.
只是第二个mehtod的注释
确保按照Google
的建议实施后备网址当无法解决意图或外部应用程序时 如果没有启动,用户将被重定向到后备网址 如果有的话。
链接应如下所示
<a href="intent://scan/#Intent;scheme=zxing;package=com.google.zxing.client.android;S.browser_fallback_url=http%3A%2F%2Fzxing.org;end">
请注意S.browser_fallback_url
后备广告