这是Google I/O 2015的一个例子。
演示网站:http://recipe-app.com/recipe/grilled-potato-salad演示应用程序:http://search-codelabs.appspot.com/codelabs/android-deep-linking
我的测试:
我已经从上面的链接安装了演示应用程序。我用谷歌搜索应用程序在谷歌上搜索了“烤土豆沙拉”,找到了http://recipe-app.com/recipe/grilled-potato-salad。
我希望点击链接会直接打开应用程序,而不是消歧对话框(http://search-codelabs.appspot.com/img/android-deep-linking/img-5.png)。然而,消歧对话框仍然显示了我的惊喜。
那网站上的<link rel="alternate" href="android-app://com.recipe_app/http/recipe-app.com/recipe/grilled-potato-salad" />
不是没用了吗?
应用的清单文件:
<activity
android:name=".client.HomeActivity"
android:label="@string/app_name"
android:exported="true"
android:theme="@android:style/Theme.Holo.NoActionBar">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<activity
android:name=".client.RecipeActivity"
android:label="@string/app_name"
android:exported="true"
android:launchMode="singleTop"
android:theme="@android:style/Theme.Holo.NoActionBar">
<intent-filter android:label="@string/app_name">
<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://recipe-app.com/recipe" -->
<data android:scheme="http"
android:host="recipe-app.com"
android:pathPrefix="/recipe" />
</intent-filter>
</activity>
<provider
android:name=".client.content_provider.RecipeContentProvider"
android:authorities="com.recipe_app" >
</provider>
4条答案
按热度按时间euoag5mw1#
如果您已成功集成所有步骤,并且您的链接已验证为连接到您的Activity,但仍未触发应用的Activity,请转到应用的设置并启用深度链接,然后选择您提供的链接。这将是自动启用一旦您更新您的版本建立在播放商店。
ppcbkaq52#
那个教程确实过时了。
HTML标记确实没用。
Google搜索结果与深度链接一起使用所需的是在您的生产Web服务器上有一个公开的reable
https://<yoursite>/.well-known/assetlinks.json
文件,请按照以下说明操作:为您的应用设置URL支持后,“应用链接助手”会生成一个数字资产链接文件,您可以使用该文件将网站与您的应用关联。
作为使用“数字资产链接”文件的替代方法,您可以在Search Console中关联网站和应用程序。
要使用“应用程序链接助手”关联应用程序和网站,请单击“应用程序链接助手”中的“打开数字资产链接文件生成器”,然后执行以下步骤:
App Links Assistant引导您完成基本的URLMap图2。输入有关您的网站和应用程序的详细信息以生成数字资产链接文件。
1.输入您的站点域和应用程序ID。2)要在您的数字资产链接文件中包含密码智能锁的支持,请选择支持在应用程序和网站之间共享凭据,然后输入您网站的登录URL。这会将以下字符串添加到您的数字资产链接文件中,声明您的应用和网站共享登录凭据:delegate_permission/common.get_login_creds.了解有关在应用中支持密码智能锁的详细信息。3)指定签名配置或选择密钥库文件。确保为应用的发布版本或调试版本选择正确的配置或密钥库文件。如果你想设置你的生产版本,请使用发布配置。如果你想测试你的构建,使用调试配置。4)单击生成数字资产链接文件。5)Android Studio生成文件后,单击保存文件以下载文件。6)将assetlinks.json文件上传到您的网站,每个人都可以读取访问,网址为https:///. well-known/assetlinks.json。重要:系统通过加密的HTTPS协议验证数字资产链接文件。确保assetlinks.json文件可通过HTTPS连接访问,无论您的应用的Intent过滤器是否包含https。
1.单击“链接并验证”以确认您已将正确的“数字资产链接”文件上载到正确的位置。
您现在应该能够在Google搜索结果中看到 *Your app -*Installed,这就是您如何知道它已经工作的方式
u3r8eeie3#
尝试使用
intent-filter标签中的autoverify告诉Android检查网站和应用是否具有相同的公共所有者,这对于应用链接来说是 * 必须 * 的(否则,它只是深度链接,这就是为什么你会看到消歧对话框)。
现在,请尝试首先在设备的“默认浏览器”上打开链接,默认浏览器通常是Google搜索。有时,应用程序链接可能无法在chrome或其他应用程序中工作,原因各不相同。
如果你已经熟悉了深度链接,你也可以参考这个链接https://developer.android.com/training/app-links/,学习如何让你的网站URL重定向到用户手机上的应用程序(如果安装了)。如果没有,请参阅“Instant Apps-Android”)。
iugsix8n4#
我有同样的问题,一切都设置正确,在我的情况下,问题是,我使用的是nginx代理服务器和cloudflare,我阻止所有国家连接到我的服务器除了伊拉克(我的国家)你要么必须禁用国家限制或允许一些国家
如下