App Indexing

什么是App Indexing?

将网站上的网页和智能手机相关联。已安装了相应软件的用户可以通过网站直接打开应用内容。

详细信息请参见官网https://developers.google.com/app-indexing/webmasters/app

官网上写的非常详细,可以看中文的。

代码实现

HTML网页中要提供App Indexing的网址是http://example.com/淘宝店铺ID

淘宝店铺ID是不确定的值。

在AndroidMenifest.xml中声明Intent过滤器。

<activity android:name="com.example.android.GizmosActivity"
           android:label="@string/title_gizmos" >
     <intent-filter android:label="@string/filter_title_viewgizmos">
         <action android:name="android.intent.action.VIEW" />

         <!-- 可以获取包含 "http://example.com/gizmos" 开头的url -->
         <data android:scheme="http"
               android:host=".*"
               android:pathPrefix="/gizmos" />
         <category android:name="android.intent.category.DEFAULT" />
         <category android:name="android.intent.category.BROWSABLE" />
     </intent-filter>
 </activity>

可以使用下面两种方式测试是否能跳转到淘宝店铺ID为【g23422】的app页面:

adb shell am start -a android.intent.action.VIEW -d "http://example.com/g23422" com.example.android

或者在HTML网页上添加:

<a href="intent://example.com/gizmos#Intent;scheme=http;package=com.example.android;end;">
  http://example.com/g23422
</a>

App Indexing的测试方法

https://developers.google.com/app-indexing/webmasters/test中输入【android-app://packageName/scheme/host/pathPrefix】。详情请参考下图:

如何判断应用从App Indexing进入的?

</pre></p><p><span style="font-size:10px;">方法如下:</span><pre name="code" class="java">    public boolean isCallByAppIndexing(Activity activity) {
        Intent intent = activity.getIntent();

        Uri uri = intent.getData();
        if (uri != null) {
            String scheme = uri.getScheme();
            String host = uri.getHost();
            if (scheme != null && scheme.equals("http")) {
                if (host != null && host.equals("example.com")) {
                    return true;
                }
            }
        }

        return false;
    }

获取淘宝店铺ID的方法:

    public String getShopId(Activity activity) {
        String shopId = null;
        Uri uri = activity.getIntent().getData();
        if (uri != null) {
            List<String> list = uri.getPathSegments();
            shopId = (list == null ? null : list.get(0));
        }
        return shopId;
    }

版权声明:本文为博主原创文章,未经博主允许不得转载。

时间: 2024-11-05 08:53:37

App Indexing的相关文章

安卓应用的界面编程(2)

第一组UI组件:布局管理器(以ViewGroup为基类派生的布局管理器) 1.线性布局 LinearLayout类 1 <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 2 android:orientation="vertical" 3 android:layout_width="match_parent" 4 android:layout_h

转:谷歌搜索悄然转型争移动主导权

长期以来,谷歌的旗舰产品已经成为我们生活中习以为常的部分.但是谷歌没有懈怠,其搜索服务正悄然转型.谷歌搜索17年来一直都在变 “天空为什么是蓝的?”孩子们经常问会这个问题,但是很少有父母能够立刻给出答案.以前,人们可能在百科全书或去图书馆寻找答案.近年来,父母则可以冲向电脑,在谷歌搜索中输入这个问题,然后打开各种链接,阅读各种解释,最终给孩子答案. 但是到2015年,即使看似很迅速的电脑查询也很少有人去做了.因为与移动设备相比,在电脑上输入搜索问题答案更为复杂.你不仅要在众多链接中选择最相关的链

关于点击Invalidate Caches/Restart禁止插件后,重新加载--Android Studio

关于点击Invalidate Caches/Restart禁止插件后,重新加载--Android Studio 1:47:27 Plugin Error Problems found loading plugins: Plugin "Google Analytics Uploader" was not loaded: required plugin "Android Support" is disabled. Plugin "SDK Updater&quo

安卓开发平台搭建

安卓开发平台搭建 安卓开发平台主要有Eclipse和Android studio两大平台,而Eclipse开发平台又有集成adt的adt bundle和模块式Eclipse,安卓开发平台搭建主要有以下三种方法,http://www.androiddevtools.cn/这个网站有很多相关开发工具提供下载. [方法一]:jdk+adt bundle,adt bundle最新版本是adt-bundle-windows-x86-20140702,里面是ADT23.0.2+andriod 4.4 api

从相册和相机获取头像

<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="300dp" android:layout_height="wrap_content" android:orientatio

2014 I/O归来:Google连接一切

6月,WWDC 2014与Google I/O  (大部分演讲视频都公开,Youtube需要翻墙,非常值得一看)相继召开.今年是我第三年参加Google I/O大会.三年间,Google积累了很多技术.做出了很多产品.本届Google I/O大会,Google向世界展示了一幅场景:Google正在连接一切. 20世纪80年代末,美国Xerox公司PARC研究中心的Mark Weiser提出了普适计算(Ubiquitous computing)的概念.在普适计算的模式下,人们能够在任何时间.任何地

安卓设置默认首先启动Activity

在学习的时候我们觉得建立新的项目很费时间,也费内存,所以我们很多时候都是在一个项目下面创建 多个activity来试验 但是如何设置默认首先启动的Avtivity  来验证我们的新实验是否成功呢? 在app.src.main下面有个Androidmanifest.xml  里面记录了你项目有哪些activity 当然也记录了那个是默认启动项 <?xml version="1.0" encoding="utf-8"?> <manifest xmlns

制作一个简易计算器——基于Android Studio实现

一个计算器Android程序的源码部分分为主干和细节两部分. 一.主干 1. 主干的构成 计算器的布局 事件(即计算器上的按钮.文本框)监听 实现计算 2. 详细解释 假设我们的项目名为Calculator,而布局名称(Layout Name)为默认的activity_main .即设置如下图所示: 在这种前提下,有: 设置计算器布局的文件:Calculator/app/src/main/res/layout/activity_main.xml 事件监听和计算实现在同一个文件里:Calculat

Android Studio 2.0 正式版发布啦 (首次中文翻译)

Android Studio 2.0 发布了,增加了一些新特性: 1. 更加完善的 Instant Run 2. 更快的 Android Emulator 3.GPU Debugger Preview 4. 包含了 IntelliJ 15 的更新 Android Studio 2.0 原文   (翻译在往下翻) Posted by Jamal Eason, Product Manager, Android Android Studio 2.0 is the fastest way to buil