标签: android-app-indexing

如何从Google搜索网站结果推广/打开应用?

背景

当您在Android设备上的Google搜索引擎网站(通过Chrome网络浏览器)搜索"如何到达X"(其中X是地理位置,如城市名称)时,显示的第一个项目是卡片允许导航到您编写的位置.

选择导航时,有两种选择:

  • 如果Android设备安装了Google地图,则会打开该应用并在那里导航.
  • 如果Android设备没有安装Google地图,则会将其发送到应用页面的Play商店进行安装.

如下所示:

在此输入图像描述

此外,在某些情况下,对于某些内容,Google可以在其找到的网站内添加一个额外的文本框进行搜索,以获得结果.这种事情发生在希伯来语网站"Zap"(比较产品价格):

在此输入图像描述

这个问题

  1. 是否有促销计划或服务或任何以这种方式推广网站/应用程序(深层链接和搜索框)?如果是这样,我应该从哪里开始?

  2. 假设您已经有一个可以执行搜索查询的网站,您如何检查应用程序是否已安装(在网站内部,而不是通过Google的搜索引擎),并采取相应措施?这可以仅在Google Chrome应用上完成吗?

应该做什么(android-app,网站和其他代码)才能拥有这些功能?

android google-chrome google-search deep-linking android-app-indexing

8
推荐指数
1
解决办法
1769
查看次数

Android深层链接仅适用于某些网站

我在我的应用程序中使用应用程序索引,但有时它无法正确接收来自Chrome的意图.

如果我从我的生产网站打开链接,它将由chrome打开.所以我创建了一个具有相同代码的测试站点.但是,在这种情况下,我的应用正确打开深层链接.

我找不到任何解释,因为它在网络中使用相同的代码(但在不同的网站中)和相同的Android应用程序.

这是我的意图过滤器:

        <intent-filter android:autoVerify="true">
            <action android:name="android.intent.action.VIEW" />
            <category android:name="android.intent.category.DEFAULT" />
            <category android:name="android.intent.category.BROWSABLE" />
            <data android:scheme="https" android:host="soriabus-web.appspot.com" android:pathPrefix="/" />
        </intent-filter>
Run Code Online (Sandbox Code Playgroud)

这是我的按钮中的html代码:

<a href="https://soriabus-web.appspot.com/parada/1/plaza-mariano-granados/true"
"type="button"
role="button"
class="btn btn-primary">
Abrir Soria Bus
</a>
Run Code Online (Sandbox Code Playgroud)

如果我打开此地址(制作)中的链接,则会打开Play商店(链接的末尾是重定向到Google Play):

https://soriabus-web.appspot.com/parada/1/plaza-mariano-granados

如果我在这个其他地址(测试)中打开链接,它会打开我的app correclty:

https://central-splice-128620.appspot.com/parada/1/plaza-mariano-granados

我不明白为什么链接处理不同.谢谢.

编辑:

是因为我正在关注同一网站内的链接吗?

https://soriabus-web.appspot.com/parada/1/plaza-mariano-granados => https://soriabus-web.appspot.com/parada/1/plaza-mariano-granados/playstore

android deep-linking intentfilter android-app-indexing firebase-app-indexing

8
推荐指数
1
解决办法
838
查看次数

应用程序崩溃AppIndexing爬行

我们注意到我们的android崩溃报告工具中的应用程序崩溃数量激增.它开始发生在大约一周前(1月7日).遇到崩溃的设备报告为运行Android 4.4.4的Calypso AppCrawler(eng.hendriks.20151229.110347).

这是堆栈跟踪:

java.lang.ClassNotFoundException:在路径上找不到类"com.app.package.here.Module $$ ModuleAdapter $ ProvideApplicationProvidesAdapter":DexPathList [[zip file"/system/framework/com.google.android.maps.jar ",zip文件"/system/framework/android.test.runner.jar",zip文件"/data/app/com.google.android.apps.appcrawler.espressocrawler-1.apk",zip文件"/ data/app/com.app.package.here-1.apk"],nativeLibraryDirectories = [/ data/app-lib/com.google.android.apps.appcrawler.espressocrawler-1,/ data/app-lib/app.app .package.here-1,/ vendor/lib,/ system/lib]]在java.lang.ClassLoader.loadClass()的dalvik.system.BaseDexClassLoader.findClass()(BaseDexClassLoader.java:56)中(ClassLoader.java: 497)在java.lang.ClassLoader.loadClass()(ClassLoader.java:457)com.app.package.here.Module $$ ModuleAdapter.getBindings()(Module $$ ModuleAdapter.java:31)at com.app .package.here.Module $$ ModuleAdapter.getBindings()(Module $$ ModuleAdapter.java:16)at dagger.ObjectGraph $ DaggerObjectGraph.makeGraph()(ObjectGraph.java:185 )at dagger.ObjectGraph $ DaggerObjectGraph.access $ 000()(ObjectGraph.java:138)at dagger.ObjectGraph.create()(ObjectGraph.java:129)at com.app.package.here.Application.buildObjectGraphAndInject()(Application .java:247)位于android.support.test上的android.app.Instrumentation.callApplicationOnCreate()(Instrumentation.java:1007)的com.app.package.here.Application.onCreate()(Application.java:126).在android.app.ActivityThread.access $ 1500()(ActivityThread.java:135)的android.app.ActivityThread.handleBindApplication()(ActivityThread.java:4328)上的runner.MonitoringInstrumentation.callApplicationOnCreate()(MonitoringInstrumentation.java:323) android.app.ActivityThread $ H.handleMessage()(ActivityThread.java:1256)位于android.os.Loper.loop()的android.os.Handler.dispatchMessage()(Handler.java:102)(Looper.java: 136)在java.lang.reflect.Method.invoke上的java.lang.reflect.Method.invokeNative()(Method.java: - 2)中的android.app.ActivityThread.main()(ActivityThread.java:5001) )(Method.java:515)在com.and roid.internal.os.ZygoteInit $ MethodAndArgsCaller.run()(ZygoteInit.java:785)位于dalvik.system.NativeStart.main的com.android.internal.os.ZygoteInit.main()(ZygoteInit.java:601) )(NativeStart.java:-2)

它似乎不会影响我们的任何用户,但显然这里有一些问题.我想知道以前有没有人遇到过这个问题?任何解决方法,修复?

android android-app-indexing google-app-indexing

7
推荐指数
0
解决办法
446
查看次数

Android应用程序索引和深层链接:我一直都错了吗?

我正在实现应用程序索引,我想我错过了什么,但我不知道是什么.

按照指南,我将我的intent-filters添加到应用程序并实现了我的活动所需的内容.

我的应用程序的包是com.towers.hotelsclick和相关的网站(我还没有把链接rel元标记,因为我只是测试)是www.hotelsclick.com

我在指南中看到了以下intent-filter示例

<activity
  android:name="com.example.android.PetstoreActivity"
 android:label="@string/title_petstore">
    <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="http" />
        <data android:scheme="https" />
        <data android:host="www.examplepetstore.com" />
    </intent-filter>
</activity>
Run Code Online (Sandbox Code Playgroud)

所以我用这种方式写了我的:

    <activity
        android:name=".ActivityForAppIndexing"
        android:label="@string/title_activity"
        android:screenOrientation="portrait" >
        <intent-filter android:label="@string/app_name">
            <data android:scheme="android-app"
                android:host="com.package.myappname" />
            <action android:name="android.intent.action.VIEW" />
            <category android:name="android.intent.category.DEFAULT" />
            <category android:name="android.intent.category.BROWSABLE" />
            <data android:scheme="http"
                android:host="www.mywebsite.com" />
            <data android:scheme="https"
                android:host="www.mywebsite.com" />
        </intent-filter>
    </activity>
Run Code Online (Sandbox Code Playgroud)

此外,我编写了一个内容提供程序来解析URI

    <provider
        android:name=".contentproviders.HotelDetailsContentProvider"
        android:authorities="com.towers.hotelsclick" >
    </provider>
Run Code Online (Sandbox Code Playgroud)

应该如下映射URI:

    private static final String BASE_PATH = "https";
private static final String AUTHORITY …
Run Code Online (Sandbox Code Playgroud)

android uri deep-linking android-app-indexing google-app-indexing

7
推荐指数
1
解决办法
1324
查看次数

Google App Indexing不适用于描述字段,但正在处理标题字段

我已经浏览了这个http://stackoverflow.com/questions/35053454/android-app-indexing-api-description-field.它讨论了在description字段中的使用App Indexing api.在调用此api时,我设置了两个titledescription字段.下面是示例代码

  Thing object = new Thing.Builder()
    .setName(title)
    .setUrl(uri)
    .setDescription(description)
    .build();

return new Action.Builder(Action.TYPE_VIEW)
    .setObject(object)
    .setActionStatus(Action.STATUS_TYPE_COMPLETED)
    .build();
Run Code Online (Sandbox Code Playgroud)

但是,当我使用谷歌应用搜索并输入其中的关键字时title,我能够看到自动完成结果.但是,如果我键入description字段中存在的关键字,我将无法获得自动完成结果.那么我该怎么做才能将描述字段的内容转化为应用索引?

因为这是一个新闻阅读应用程序.所以我将描述设置为新闻内容的第一段.第一段可以长达500个字符.我们传递给描述字段的内容长度是否有任何建议?

android android-app-indexing

7
推荐指数
1
解决办法
300
查看次数

Android Studio只给我SHA1,我需要SHA256

我想使用assetlinks.json进行appindexing.我应该使用SHA256指纹,但是当我在Android Studio中打印出signedReport时,我只有SHA1.我可以使用SHA1,如果没有,我如何获得SHA256签名应用程序?

使用Manish Jain的答案我已经设法只列出调试键,这比我自己做的更多,但是如果我将实际的keystore路径和jks文件放在路径中,"keytool -list -v -keystore"C:\Users\_自我\ Keystores\android.jks"-alias mykey -storepass 1password -keypass 2password"出现了一组不同的密钥,我假设它是释放密钥集.

大问题是为什么android studio只在我从Gradle打印出signedReport时列出了调试键,为什么它说"Variant:releaseUnitTest,Config:none"?任何的想法?

顺便说一句,这个问题与建议的副本无关.

编辑:回复jyomin的问题2.我希望它也能帮助其他人.

*****对于Release:1,请转到:C:\ Program Files\Java\jdk1.7.0_25\bin(或者你的jdk文件所在的位置)2,在win explorer 3的地址栏中输入"cmd",添加:keytool -list -v -keystore"C:\ Users\yourUserName\Keystores\android.jks"-alias yourAppName -storepass yourPasswordToKeystore -keypass yourPasswordToRequiredAppKey

小心!!!如果密钥库中有多个密钥,它可能无法为您提供与给定应用程序匹配的正确密钥!

为您的应用获取SHA256的另一种方法:在开发者控制台或Firebase上,您可以在某处找到相关的SHA256密钥.我现在找不到它,但是如果你继续寻找它,它就在那里.

我刚在Google Play开发者控制台上找到它:

  • 上传您应用的第一个版本(如果您尚未完成)
  • 转到版本管理中的App Releases
  • 点击管理测试版
  • 在APK版本中,单击右侧的"i"信息按钮

它会显示SHA键

祝好运!

android sha android-app-indexing google-app-indexing firebase-app-indexing

7
推荐指数
8
解决办法
1万
查看次数

Gboard贴纸搜索不返回结果

通过应用程序索引我向GBoard添加了贴纸包,但GBoard搜索无法通过关键字找到我的贴纸.

new Indexable.Builder("Sticker")
   .setName("Bye")
   .setImage("http://www.snoopysticker.com?id=1234")
   .setUrl("http://sticker/canonical/image/bye")
   .setDescription("A sticker for Bye")
   .put("keywords", "bye", "snoopy", "see ya", "good bye")
   .put("isPartOf",
        new Indexable.Builder("StickerPack")
          .setName("Snoopy Pack")
          .build())
   .build())};
Run Code Online (Sandbox Code Playgroud)

android firebase android-app-indexing

7
推荐指数
1
解决办法
860
查看次数

Android Deep Links和App Links令人困惑

任何人都可以解释在现实生活中的例子之间有什么区别

应用链接 - https://developer.android.com/training/app-links/deep-linking.html

深层链接 - https://developer.android.com/training/app-links/index.html

应用索引 - https://developer.android.com/studio/write/app-link-indexing.html

在Android?

已经阅读了太多的帖子和文档,但仍然无法得到确切的要点.

据我所知,App链接适用于Android 6.0和Deep Links 4.2.但在表现方面,他们正在做类似的任务.

android deep-linking android-permissions android-app-indexing applinks

7
推荐指数
2
解决办法
1010
查看次数

Google的应用程序索引与Facebook的App链接有何不同?

  • 它们似乎都提供了一种urls向本机应用程序添加概念的方法
  • 据我了解,Facebook试图为问题设置App链接的标准
  • 我不确定谷歌的应用程序索引在哪里偏离同一个想法

Android App Indexing表示可以将应用程序编入索引以在Web上映射相应的内容

在哪里

应用程序链接表示app-to-app链接特定内容

两者都表明,有一个url-like结构可以定位应用程序上的特定内容以从应用程序外部定位(可能是另一个应用程序或Web)

我想知道的是:

  • 创建我的应用程序时,我应该同时执行这两个应用程序,还是可以为两者提供应用程序链接(因为它是标准)或如何从两者中受益?

android facebook android-app-indexing applinks google-search-platform

6
推荐指数
1
解决办法
1121
查看次数

应用程序图标未进入谷歌搜索自动完成

我已经实现了AppIndexing API.我正在进行搜索自动完成,它正在按预期工作.但是应用程序图标不可用.今天我在手机上更新了谷歌搜索应用程序,从那时起,应用程序图标就没有了.查看http://i.stack.imgur.com/ckpGj.jpg上的屏幕截图

android deep-linking android-app-indexing

6
推荐指数
1
解决办法
410
查看次数