新节 2024-01-27 10:23 采纳率: 70%
浏览 49
已结题

h5页面通过Scheme无法直接唤起APP

1,当前的情况:
在手机浏览器h5分享页面可以通过 window.location.href = "wxzd://wenxianzhen.com"唤起APP;但是需要用户交互 比如点击按钮触发。

img

2,现在的需求:
页面进来 在mounted()生命周期直接location.href唤起APP,发现无法唤起; 怎么才能直接唤起App呢,不需要交互

3,参考:
我们是参考的 掘金的分享流程,掘金的分享页面在手机浏览器就可以直接唤起APP(如果用户装了的话),如果没装 点击下载按钮就可以下载掘金APP

掘金的测试分享链接:https://juejin.cn/post/7296384298902929417?share_token=518f3292-524f-4d6d-a29c-770ec2e01e3c

4,尝试:

我们也尝试页面进来通过 创建a标签来模拟点击,发现也不行

onMunted(()=>{
   const a = document.createElement("a");
  a.href = "wxzd://wenxianzhen";
  a.target = "_blank";
  document.body.appendChild(a);
  a.click();
})

不知道你么们有什么好的思路,也不清楚掘金怎么实现的?

  • 写回答

1条回答 默认 最新

  • CSDN-Ada助手 CSDN-AI 官方账号 2024-01-27 12:19
    关注

    【以下回答由 GPT 生成】

    问题描述:

    最近遇到一个问题,我想通过H5页面直接唤起APP,而不需要用户进行交互。我了解到掘金可以实现这一功能,但是我不确定具体实现的方式。我尝试过创建a标签模拟点击的方式,但是没有成功。我希望得到关于如何实现直接唤起APP的解决思路或建议。

    解决方案:

    直接唤起APP是一种常见的需求,通常可以通过URL Scheme、Universal Link和Deep Link等方式实现。

    1. URL Scheme: a. 首先,你需要了解APP是否支持URL Scheme。通常,APP会定义一个自定义的URL Scheme,用于唤起APP。 b. 在H5页面中,你可以通过创建一个带有自定义URL Scheme的a标签来实现直接唤起APP。示例代码如下:

      html <a href="yourAppScheme://">点击这里打开APP</a>

      请确保替换"yourAppScheme"为你要唤起的APP的URL Scheme。

    c. 注意,URL Scheme在某些情况下可能无法正常工作,比如在iOS 9及以上版本中,默认禁止非HTTPS的URL Scheme唤起APP。这时可以考虑使用Universal Link或者Deep Link。

    1. Universal Link: a. Universal Link是在iOS 9及以上版本中引入的一种新的方式,用于将H5页面与APP关联起来。APP需要在其服务器上配置关联的域名和路径。 b. 在H5页面中,你可以通过创建一个带有关联的域名和路径的a标签来实现直接唤起APP。示例代码如下:

      html <a href="https://yourdomain.com/yourpath">点击这里打开APP</a>

      请确保替换"yourdomain.com"和"yourpath"为你在APP服务器上配置的关联域名和路径。

    c. Universal Link的优势是可以直接跳转到APP,而不需要弹出一个确认提示框。但是,由于需要在APP服务器上做配置,所以开发难度较高。

    1. Deep Link: a. Deep Link是一种在APP中定义一个特定的URL Scheme来处理来自H5页面的请求。与URL Scheme类似,你可以在a标签中使用这个URL Scheme来直接唤起APP。 b. 需要在APP中实现对应的URL Scheme处理逻辑,来处理来自H5页面的请求。

    总结:

    以上是几种常见的实现直接唤起APP的方式,具体的选择取决于你的APP是否支持对应的方式以及你的需求。你可以根据自己的情况选择适合的方式来实现直接唤起APP的功能。如果还有其他问题或者需要更详细的帮助,请随时提问。


    如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^
    评论

报告相同问题?

问题事件

  • 已结题 (查看结题原因) 6月15日
  • 创建了问题 1月27日