我可以通过浏览器的HTML页面链接广播自定义意图吗?

时间:2016-05-30 11:03:33

标签: android html

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

2 个答案:

答案 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链接时,我想广播我的自定义意图   来自浏览器的页面。

您可以通过两种方式实现,具体选择取决于您的使用案例。

  1. 创建<intent-filter>以打开所选链接(您网站的链接)
  2. 将您在网站上的链接更改为<a href="intent://...>
  3. 第一种方法可以让您灵活地保留网站上的链接,这也有助于deeplinkingAppIndex。第二种方法将改变网站中的所有链接。

      

    我知道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后备广告