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

如何禁用Android应用程序链接,如果用户在网站上?

牛嘉谊
2023-03-14

假设有一个网站https://www.example.com我们正在听https://www.example.com/product在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:host="www.example.com"
        android:pathPrefix="/product"
        android:scheme="https" />
</intent-filter>

文件资产链接。json也托管在示例中。通用域名格式

Android应用程序链接工作正常,如预期。

现在,如果用户进入浏览器并打开example.com和用户点击https://example.com/product将在应用程序中打开,但我们想阻止应用程序打开只有当用户在我们的网站上

任何帮助都将不胜感激。

共有3个答案

干茂才
2023-03-14

嗯,根据Android官方文档,您需要从清单上的意图过滤器中删除可浏览类别。

https://developer.android.com/training/app-links/deep-linking

从文档为谁有困难打开一个网址和阅读文档:

包含BROWSABLE类别。要从Web浏览器访问意图筛选器,需要该类别。如果没有该类别,单击浏览器中的链接将无法解析到您的应用。

这意味着,如果你不想让浏览器直接指向你的应用,只需删除可浏览类别即可。这就是全部。

因此,您的清单如下所示:

<intent-filter android:autoVerify="true"
tools:ignore="AppLinkUrlError">

<action android:name="android.intent.action.VIEW" />

<category android:name="android.intent.category.DEFAULT" />

<data
    android:host="www.example.com"
    android:pathPrefix="/product"
    android:scheme="https" />
</intent-filter>

您将得到一个“AppLinkUrlError”,以便添加;

tools:ignore="AppLinkUrlError"

来压制它。

林弘文
2023-03-14

在看了很多之后,我能找到的唯一解决办法是从web重定向,以打开web而不是应用程序-

我注意到,重要的一点是,如果页面是在React或Angular中开发的,并且不是基于JSP的,则永远不会调用该应用程序。在我们的例子中,我们使用的是Tomcat服务器,所以每当用户导航到不同的页面时,Android系统都会知道浏览器中打开了一个新页面,这使得Android系统在监听意图过滤器中指定的url时打开Android应用程序。然而,如果页面是在React和Angular中设计的,则不会发生这种情况。

现在,这对我来说真的很难描述,因为我不是一名web开发人员,这是web开发人员告诉我的,我在JSP和React页面方面都有经验。

太叔航
2023-03-14

我想网络开发者可能已经告诉你了。。。因为这都是关于URL,而不是内容。点击Chrome中的hold,然后“在新标签中打开”即可工作,而无需通过意向过滤器传递新的URL。。。你将无法从Chrome上读取URL,因此你可以放弃这种方法。

为了解决通过添加意图过滤器而产生的问题,您所能做的就是设置两个子域,然后只为其中一个子域进行过滤,同时仍然在这两个子域上显示相同的内容(需要HTML中的规范元标记),然后您可以像往常一样简单地使用页面,而不会触发意图过滤器。

为了仍然能够通过意向过滤器打开应用程序。。。只需添加一个按钮,该按钮链接到另一个子域,意图过滤器正在匹配该子域。其他方法可能不合逻辑或存在其他问题。

 类似资料:
  • 因此,我试图找出是否有可能深度链接当前未安装该应用程序的用户。以下是我试图做的:1)用户在移动浏览器中点击网站上的深度链接。2) 用户将被带到应用商店安装应用3)一旦安装,用户将被带到应用中特定内容的深层链接。 到目前为止,我发现的最接近Android应用程序安装横幅的东西,但这并不是我想要的。这可能吗? 以下是页面底部附近Android应用安装横幅的链接:https://medium.com/@

  • 问题内容: 我有一个必须禁用的链接按钮。这适用于IE,但不适用于Firefox和Chrome。结构是- 内的链接。我无法在中添加任何容器(例如div / span) 我尝试了以下所有方法,但无法在Firefox上运行(使用1.4.2 js): 注意-我无法取消注册锚标记的click功能,因为它是动态注册的。而且我必须在禁用模式下显示链接。 问题答案: 您不能(以便携式方式)禁用链接。您可以使用其中

  • 我在中有一个链接按钮,我必须禁用该按钮。这在IE上有效,但在Firefox和Chrome上不起作用。结构是-Link在中。我不能在中添加任何容器(如div/span)

  • 我被困在上一周,我无法上传即时应用apk。我发现“您的网站'sptechinfo.000webhostapp.com'尚未通过数字资产链接协议链接到您的应用。请通过数字资产链接协议将您的网站链接到您的应用” 我已经添加了assetlink.jsonAssetLink.json但仍然在Playstore上获得相同的错误。 我从这里验证了链接https://digitalassetlinks.goog

  • Google在这里有一个很好的页面展示了如何这样做:https://developer.android.com/distribute/tools/promote/linking.html 基本上,使用这段代码,它将打开Play Store到新apps页面: 我错过了什么?我肯定它非常简单,也许我需要进口的东西。 解决方案:导入Uri类是一个问题。我仍然不确定新的热键是什么来导入它。Apple-Sh