当前位置: 首页 > 知识库问答 >
问题:

android应用程序链接不工作

席弘图
2023-03-14


演示网站: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).然而,消歧对话框仍然让我感到惊讶。

是不是

应用程序的清单文件:
"'

<uses-permission android:name="android.permission.INTERNET"/>

<application
    android:allowBackup="true"
    android:icon="@drawable/ic_launcher"
    android:label="@string/app_name"
    android:theme="@style/CustomActionBarTheme" >

    <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>
</application>

“‘


共有2个答案

仉成益
2023-03-14

尝试使用

<intent-filter tools:node="merge" android:autoVerify="true">

意图过滤器标签中的自动验证告诉Android检查网站和应用程序是否有相同的共同所有者,这是应用程序链接所必需的(否则,这只是深度链接,这就是为什么你会看到消岐义对话)。

<intent-filter android:label="@string/app_name" android:autoVerify="true" >
<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>

现在,试着先在设备的“默认浏览器”上打开链接,默认浏览器通常是谷歌搜索。有时,app-link可能由于不同的原因无法在chrome或其他应用程序中运行。

如果您已经熟悉深度链接,也可以参考此链接https://developer.android.com/training/app-links/了解如何将网站url重定向到用户手机上的应用(如果已安装。如果未安装,请参阅“即时应用Android”)。

宇文修文
2023-03-14

那篇教程确实过时了

谷歌搜索结果与深度链接协同工作所需的是公开获取的https://

作为使用数字资产链接文件的替代方案,您可以在搜索控制台中关联您的网站和应用程序。

要使用app Links Assistant将应用程序与网站关联,请单击app Links Assistant中的打开数字资产链接文件生成器,然后执行以下步骤:

应用链接助手引导您完成基本的网址映射图2。输入关于您的网站和应用的详细信息,以生成数字资产链接文件。

>

  • 输入您的网站域和应用程序ID。2)要在数字资产链接文件中包含对密码智能锁的支持,请选择“支持在应用程序和网站之间共享凭据”,然后输入您网站的登录URL。这会将以下字符串添加到您的数字资产链接文件中,声明您的应用程序和网站共享登录凭据:delegate_permission/common。获得信任。了解有关在应用程序中支持密码智能锁的更多信息。3) 指定签名配置或选择密钥库文件。确保为应用程序的发布版本或调试版本选择了正确的配置或密钥库文件。如果要设置生产构建,请使用发布配置。如果要测试构建,请使用调试配置。4) 单击生成数字资产链接文件。5) Android Studio生成文件后,单击“保存文件”下载。6) 上传资产链接。json文件,每个人都可以在https:///.well-known/assetlinks.json.重要提示:系统通过加密的HTTPS协议验证数字资产链接文件。确保资产链接。json文件可以通过HTTPS连接访问,无论应用程序的意图过滤器是否包含HTTPS。

    单击链接并验证以确认您已将正确的数字资产链接文件上载到正确的位置。

    你现在应该可以看到你的应用程序-安装在谷歌搜索结果中,这就是你如何知道它已经工作了

  •  类似资料:
    • 如果应用程序已由Deep link打开,则Deep link不起作用。 但是,如果我不是通过触发深度链接来打开应用程序,比如单击应用程序图标来打开应用程序。之后触发deeplink将一直有效。 详情如下: 所以我在AndroidManifest中设置了这样的活动,即LaunchActivity。 在LaunchActive中,我将打印一个日志,以表明它已经在那里。 我用了 测试深层链接。 应用程序

    • 我一直在尝试运行我的客户端/服务器android程序。但是每当我在android上运行客户端部分时,它都会出错不幸的是,您的应用程序已停止运行。我尝试过阅读logcat,但无法解决问题。下面是我的代码...我从3天开始一直在尝试。需要项目帮助 logcat公司 activity\u new\u main\u活动。xml manifest.xml 新建_main_活动。Java语言

    • 我在我的应用程序中启用了应用链接。它工作正常。但是在我的应用程序中,有一些情况下我无法处理传入的网址。在这种情况下,我想将该网址重定向到设备中的默认浏览器。 目前,我尝试使用intent打开带有url的浏览器,但它再次重定向到我的应用程序本身。应用程序链接的格式如下- 所以根据params,我想要么在应用程序本身中处理应用程序链接,要么将其重定向到默认浏览器。下面是我试图用上面的网址打开浏览器的代

    • 我有一个可以从网页上的按钮打开的应用程序。我在清单中有一个意图过滤器,如下所示: 如果用户没有安装应用程序,该链接将打开Play Store。如果用户拥有该应用程序,则会将其打开。 问题是当用户最近安装应用程序时。如果用户安装了应用程序,但从未打开它,当他选择URL时,将打开Play Store而不是我的应用程序。一旦用户第一次打开应用程序,那么所有应用程序都会正常工作。 有没有办法打开应用程序总

    • 我已将AssetLink文件托管到我们的域中https://ourdomain/.well-known/assetlinks.json并用计算机进行了验证https://developers.google.com/digital-asset-links/tools/generator通过android studio的应用程序链接Assistant,并通过两种方式获得验证状态。但当我共享调试APK进