【问题标题】:can i Broadcast custom intent through my HTML page link from browser?我可以通过浏览器中的 HTML 页面链接广播自定义意图吗?
【发布时间】:2016-05-31 12:41:44
【问题描述】:

当我从浏览器单击我的 html 页面的链接时,我想广播我的自定义意图。我知道 android 系统会为此广播“android.intent.action.VIEW”,我可以在我的应用程序中接收它,但这样做会为每个可点击链接列出我的应用程序,所以我想广播我的自定义意图操作。

【问题讨论】:

    标签: android html


    【解决方案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 中为意图过滤器编写相同方案的任何字符串

    "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>
    

    您可以为我提供给启动器活动的任何活动添加意图过滤器 请注意&lt;data android:scheme="myapp" /&gt; 方案名称必须与之前在 HTML 文件中给出的相同。

    完成!在您设备的任何浏览器中打开 html 文件并单击链接,它将直接打开您的应用程序。

    您可以在 Activity 的 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);
            }
    

    【讨论】:

    • 谢谢..像魅力一样工作...intent://url 是简单且有效的示例..
    【解决方案2】:

    当我点击我的 html 链接时,我想广播我的自定义意图 来自浏览器的页面。

    您可以通过两种方式做到这一点,具体选择取决于您的用例。

    1. 创建&lt;intent-filter&gt; 以打开选定的链接(您网站的链接)
    2. 将网站上的链接更改为&lt;a href="intent://...&gt;

    第一种方法使您可以灵活地将链接保留在您的网站上,它也有助于deeplinkingAppIndex。第二种方法会让您更改网站中的所有链接。

    我知道android系统会广播“android.intent.action.VIEW” 这个,我可以在我的应用程序中收到这个,但这样做会列出 我对每个可点击链接的申请,所以我想广播我的 自定义意图操作。

    它不会为网络上的每个可点击链接列出您的应用程序,它只会为您的网站链接打开您的应用程序。如果您不想这样做并且只为您网站的一个特定链接打开应用程序,则应使用上述方法 2。

    只是对第二种方法的说明

    确保按照Google 的建议实施后备网址

    当无法解析意图或外部应用程序可以 未启动,则用户将被重定向到后备 URL 如果有的话。

    链接应该是这样的

    <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 以作为后备

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-06-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-06-07
      • 2018-04-06
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多