我正在阅读关于Google IO 2014上展示的索引API(developers.google.com/app-indexing/webmasters/appindexingapi).我在那里(或找不到)的一个功能是本地应用程序索引.
我将使用示例:我想搜索我特定的本地内容.我创建了一个应用程序,每个用户都有不同的数据 就像来自Google Keep或Evernote的笔记一样.我想将数据暴露给谷歌搜索只是为了那个手机.
我是对的,现阶段不可能吗?谷歌将来会做什么想法?
此致,康拉德
Google最近在Google搜索中实施了一项功能,允许用户动态安装您的应用,如果可以在您的应用中打开结果.
有没有办法检测这是你的应用程序是如何打开的?从Google搜索安装并深度链接?
当我将Android Studio 1.5.1升级到Play Services Rev. 29时,现有项目中的主要活动(以及Android清单)已自动更新为包含App Indexing样板代码。然后,未更改的样板代码在活动的onStart中引起了异常(这是我意识到已将其添加的时候)。我正处于生产代码开发的中间,不愿意转移注意力。
将来如何防止这种自动生成?
该问题类似于以下问题:新生成的代码“这是自动生成以实现App Indexing API的代码”是什么?
但是,我现在不在乎“它是什么”-我希望下次升级Android Studio时不要让它暗淡。
谢谢!
我的应用有一项活动.该应用程序有一个抽屉,其中包含一个从我的内容提供商处填写的列表.用户可以从抽屉中选择一个项目,然后动态地用适当的内容填充活动.我不确定如何在这种情况下实现应用程序索引.我的意思是根据教程的第3步,活动似乎预计会显示一个内容(我错了吗)?
注意:我已经有深层链接工作(我有一个网站和内容地图到应用程序中的内容).
具体来说,我想知道每次用户更改内容时我都会动态更改以下内容:
mUrl = "http://examplepetstore.com/dogs/standard-poodle";
mTitle = "Standard Poodle";
mDescription = "The Standard Poodle stands at least 18 inches at the withers";
Run Code Online (Sandbox Code Playgroud)
如果是的话,我应该只进行一次调用(仅在onStart上).同样,我的数据是从内容提供商加载的.提供程序本身是从服务器加载的,但是该调用加载了所有内容 - 而不是仅加载单个页面.
Android Studio一直建议我添加App Indexing代码.更糟糕的是,当光标在没有其他问题的情况下,它总是显示快速修复图标.
快速修复变得不那么有用,因为需要关心它是否不会"修复"App Indexing问题.第二 - 它令人烦恼,并分散了实际问题的注意力.
如何禁用这个"辉煌"的功能?
HEJ!
我正在尝试实现应用程序索引内容,并且我已经开始使用应用程序索引的 Google codelabs示例.
运行此代码
Indexable recipeToIndex = new Indexable.Builder()
.setName(mRecipe.getTitle())
.setUrl(mRecipe.getRecipeUrl())
.setImage(mRecipe.getPhoto())
.setDescription(mRecipe.getDescription())
.build();
FirebaseAppIndex.getInstance().update(recipeToIndex);
Run Code Online (Sandbox Code Playgroud)
总是导致方法FirebaseAppIndexingInvalidArgumentException抛出update().
com.google.firebase.appindexing.FirebaseAppIndexingInvalidArgumentException: Intent 'Intent { act=android.intent.action.VIEW dat=http://example.com pkg=com.example }' cannot be resolved. The invalid indexable is: Indexable { { id: 'http://example.com/123' } Properties { { key: 'name' value: [ 'test_name' ] } } Metadata { worksOffline: false, score: 0 } }
at com.google.firebase.appindexing.internal.zzn.zzb(Unknown Source)
at com.google.firebase.appindexing.internal.zzd$zzc$1.onComplete(Unknown Source)
at com.google.android.gms.tasks.zzc$1.run(Unknown Source)
at android.os.Handler.handleCallback(Handler.java:739)
at android.os.Handler.dispatchMessage(Handler.java:95)
at android.os.Looper.loop(Looper.java:145)
at android.app.ActivityThread.main(ActivityThread.java:5951)
at …Run Code Online (Sandbox Code Playgroud) 好的,所以我知道如果我有一个网站和一个应用程序大致显示相同的内容,应用程序索引可用于在应用程序中打开指向该网站的链接(如果用户安装了它)。
为此,需要在网页中指定深层链接,以指定应用程序和内容的 URI。这也让 Googlebot 知道网页到应用程序的意图连接,以便它可以在搜索结果等中显示内容(即indexing)。还可以指定处理网站 URL 的意图过滤器,因此指向您网站的链接可以自动打开应用程序并在那里显示内容,甚至无需在浏览器中打开网页。
我在理解上遇到问题的部分是,在 Android 应用程序中,您添加了“相反”的代码(可以由 Android Studio 自动生成)。
例如
@Override
public void onStart() {
super.onStart();
// ATTENTION: This was auto-generated to implement the App Indexing API.
// See https://g.co/AppIndexing/AndroidStudio for more information.
client.connect();
Action viewAction = Action.newAction(
Action.TYPE_VIEW, // TODO: choose an action type.
"Main Page", // TODO: Define a title for the content shown.
// TODO: If you have web page content that matches this app activity's content,
// make sure this …Run Code Online (Sandbox Code Playgroud) android android-app-indexing google-app-indexing firebase-app-indexing
背景:有很多关于应用程序索引、应用程序链接、深层链接、深层应用程序链接等的信息 - 但几乎所有这些信息都只是重复相同的信息,而没有解释不同部分的目的,使用令人困惑的术语和只是似乎是为非技术人员(SEO 和营销人员)而不是开发人员编写的。
不管怎样,我正在实施应用程序索引和深度链接到我的应用程序中,我认为我已经(大部分)弄清楚了这一切。但后来我开始反思android-app://我添加到网站的那些链接的真正目的是什么,以及我是否真正正确地实施了它们。
我有一个 SSL 网站(我们称之为 )https://mywebsite.com和一个应用程序(我们称之为包名称 )com.my.app。
例如,https://mywebsite.com/foo/bar我有以下深层应用程序链接(有正确的术语吗??):
<link rel="alternate" href="android-app://com.my.app/http/mywebsite.com/foo/bar" />
Run Code Online (Sandbox Code Playgroud)
问题 1:我见过的所有示例都使用了这种格式,但是由于我的网站使用 SSL,我不应该像这样使用而不是https吗http?
<link rel="alternate" href="android-app://com.my.app/https/mywebsite.com/foo/bar" />
Run Code Online (Sandbox Code Playgroud)
问题 2:现在,如果我尝试在我的设备上打开这些链接之一,它不起作用。我尝试过使用二维码阅读器,将其输入浏览器,甚至使用 adb 将其作为意图数据发送。手机似乎android-app://根本不理解这个方案。我见过一些地方,人们建议使用 QR 代码测试这些链接,但我尝试了三种不同的 QR 应用程序,但似乎没有一个可以处理它们。那么我可以测试它们吗?如果可以的话,如何测试?
问题3:这些链接的实际目的是什么?我的应用程序使用意图过滤器进行处理https://mywebsite.com/foo/bar,那么在我的网页中提供链接的实际目的是什么android-app://com.my.app/http/mywebsite.com/foo/bar?
android deep-linking android-app-indexing applinks firebase-app-indexing
我正在关注App Indexing API doc。我的应用程序 URI 是android-app://com.mypackagename.app/intro/intro/,所以我将它添加到清单文件中,在<activity>
<activity
android:name=".MainActivity"
android:label="@string/config_app_name"
android:screenOrientation="portrait"
android:enabled="true"
android:exported="true"
>
<intent-filter android:label="test">
<action android:name="android.intent.action.VIEW" />
<category android:name="android.intent.category.DEFAULT" />
<category android:name="android.intent.category.BROWSABLE" />
<data android:scheme="android-app"
android:host="com.mypackagename.app" />
</intent-filter>
</activity>
Run Code Online (Sandbox Code Playgroud)
但是当按照在我的手机上测试您的深层链接中所述去测试我的深层链接时,该链接android-app://com.mypackagename.app/intro/intro/无法打开,吐司说“没有安装可以处理它的应用程序”
我错过了什么?谢谢
更新:在 Mattia 指出的文档中,绝对可以选择放置任何方案,例如“示例”,但它对我不起作用。我在棒棒糖上,如果它有所作为。
<intent-filter android:label="@string/filter_title_viewgizmos">
<action android:name="android.intent.action.VIEW" />
<category android:name="android.intent.category.DEFAULT" />
<category android:name="android.intent.category.BROWSABLE" />
<!-- Accepts URIs that begin with "example://gizmos" -->
<data android:scheme="example"
android:host="gizmos" />
</intent-filter>
Run Code Online (Sandbox Code Playgroud)
更新 2:包之后的任何内容都是方案,在我的情况下android-app://com.mypackagename.app/intro/intro/,它是intro. 下面标记答案
我的谷歌开发帐户中只有游戏,我看到很多关于谷歌的应用程序索引最新更新和新功能的嗡嗡声,所以我想问你们这些应用程序索引适用于Android游戏吗?因为我不确切地知道它是如何工作的,但是如果它适用于游戏,那么这个益智游戏还有一个关于ASO和驱动安装的内容.