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

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

是否有促销计划或服务或任何以这种方式推广网站/应用程序(深层链接和搜索框)?如果是这样,我应该从哪里开始?
假设您已经有一个可以执行搜索查询的网站,您如何检查应用程序是否已安装(在网站内部,而不是通过Google的搜索引擎),并采取相应措施?这可以仅在Google Chrome应用上完成吗?
应该做什么(android-app,网站和其他代码)才能拥有这些功能?
android google-chrome google-search deep-linking android-app-indexing
我在我的应用程序中使用应用程序索引,但有时它无法正确接收来自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
我们注意到我们的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)
它似乎不会影响我们的任何用户,但显然这里有一些问题.我想知道以前有没有人遇到过这个问题?任何解决方法,修复?
我正在实现应用程序索引,我想我错过了什么,但我不知道是什么.
按照指南,我将我的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
我已经浏览了这个http://stackoverflow.com/questions/35053454/android-app-indexing-api-description-field.它讨论了在description字段中的使用App Indexing api.在调用此api时,我设置了两个title和description字段.下面是示例代码
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个字符.我们传递给描述字段的内容长度是否有任何建议?
我想使用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开发者控制台上找到它:
它会显示SHA键
祝好运!
android sha android-app-indexing google-app-indexing firebase-app-indexing
通过应用程序索引我向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) 任何人都可以解释在现实生活中的例子之间有什么区别
应用链接 - 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
urls向本机应用程序添加概念的方法Android App Indexing表示可以将应用程序编入索引以在Web上映射相应的内容
在哪里
应用程序链接表示app-to-app链接特定内容
两者都表明,有一个url-like结构可以定位应用程序上的特定内容以从应用程序外部定位(可能是另一个应用程序或Web)
我想知道的是:
android facebook android-app-indexing applinks google-search-platform
我已经实现了AppIndexing API.我正在进行搜索自动完成,它正在按预期工作.但是应用程序图标不可用.今天我在手机上更新了谷歌搜索应用程序,从那时起,应用程序图标就没有了.查看http://i.stack.imgur.com/ckpGj.jpg上的屏幕截图