我在 AndroidManifest.xml 中得到以下工具提示:
应用无法被 Google 搜索索引;考虑添加至少一个带有 ACTION-VIEW 意图填充的 Activity。有关更多详细信息,请参阅问题说明。添加深层链接以使您的应用进入 Google 索引,从而从 Google 搜索中获取应用的安装量和流量。
https://i.stack.imgur.com/ghLjy.png
谁能解释为什么会这样?
来自官方文档:
要使 Google 能够抓取您的应用内容并允许用户从搜索结果中输入您的应用,您必须在应用清单中为相关活动添加意图过滤器。这些意图过滤器允许深度链接到您的任何活动中的内容。例如,用户可能会单击深层链接以查看购物应用程序中描述用户正在搜索的产品的页面。
使用此链接 Enabling Deep Links for App Content,您将了解如何使用它。
并使用此 Test Your App Indexing Implementation 进行测试。
以下 XML 片段显示了如何在清单中指定意图过滤器以进行深度链接。
<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" />
<category android:name="android.intent.category.DEFAULT" />
<category android:name="android.intent.category.BROWSABLE" />
<!-- Accepts URIs that begin with "http://www.example.com/gizmos” -->
<data android:scheme="http"
android:host="www.example.com"
android:pathPrefix="/gizmos" />
<!-- note that the leading "/" is required for pathPrefix-->
<!-- Accepts URIs that begin with "example://gizmos” -->
<data android:scheme="example"
android:host="gizmos" />
</intent-filter>
</activity>
通过 Android Debug Bridge 进行测试
$ adb shell am start
-W -a android.intent.action.VIEW
-d <URI> <PACKAGE>
$ adb shell am start
-W -a android.intent.action.VIEW
-d "example://gizmos" com.example.android
您可以通过在 <activity>
内的 <intent-filter>
中添加以下代码来删除警告
<action android:name="android.intent.action.VIEW" />
tools:ignore="GoogleAppIndexingWarning"
删除警告。我将它作为同级添加到主活动中的 <action android:name="android.intent.action.MAIN" />
。
tools:ignore="GoogleAppIndexingWarning"
,因为这样您就不会添加空的 ACTION_VIEW。它可能不会引起任何问题,但您总是希望安全。
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
package="com.example.app"
tools:ignore="GoogleAppIndexingWarning">
您可以通过将 xmlns:tools="http://schemas.android.com/tools"
和 tools:ignore="GoogleAppIndexingWarning"
添加到 <manifest>
标记来删除警告。
将此意图过滤器添加到应用程序清单中声明的活动之一为我解决了这个问题。
<activity
android:name=".MyActivity"
android:screenOrientation="portrait"
android:label="@string/app_name">
<intent-filter>
<action android:name="android.intent.action.VIEW" />
</intent-filter>
</activity>
此解决方案仅适用。如果您想忽略此警告
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
tools:ignore="GoogleAppIndexingWarning"
package="com.example.saloononlinesolution">
ACTION-VIEW
意图过滤器,但解决方案涉及action.VIEW
。同样,点击 Android Studio 中的链接会将您带到没有出现ACTION-VIEW
的网页。他们对突兀的警告至少可以为您提供准确的消息和帮助页面。xmlns:tools="http://schemas.android.com/tools"
添加到manifest
标记,然后将tools:ignore...
添加到application
标记。