h5跳转到 苹果 ios app store 应用商店 的APP详情页面

2023-11-07

在开发  h5跳转到 ios系统 app store的时候遇到两个问题

原理

  1. 判断是安卓还是苹果,如果为苹果显示苹果的标签,点击a标签,执行跳转唤起APP(openAPP),加一个定时器,三秒(可根据需求调整)之后,如果没有唤起成功,跳转到App Store下载页面。
  2. 不管iOS还是Android,浏览器都不可能预知本地是否安装了某个APP的。或者更严谨地说,我们不能通过浏览器来预知本地是否安装。因为就算浏览器可以读取本地应用的安装列表,但是目前也没任何一家浏览器提供查询的API,所以这条路是走不通的。

问题 1

ios中是不能通过window.location.href来跳转的。浏览器会报非法地址。

解决

插入a标签模拟点击事件。

问题 2

ios跳转到app之后,之后的还会执行再继续打开app store

解决

通过document.webkitHidden判断是否是visibilitychange  窗口不可见

 

if (navigator.userAgent.match(/(iPhone|iPod|iPad);?/i)) {
        var loadDateTime = new Date();
        
        //ios9可以通过配置一个已有的链接打开app,需要给服务器上传一个校验文件
        // window.location.href = 'https://www.umacaroon.com';

        $('body').append("<a id='to_ios_app' href='ios跳转app链接'></a>")
        var obj = document.getElementById('to_ios_app');
        obj.click();

        //会提示此链接非私人链接

        //目前还有一个问题需要用iframe来解决,到时候补充

        setTimeout(function () {

            // window.alert(document.webkitHidden)
            // window.location = 'https://itunes.apple.com/app/id1271022527?mt=8'
            
            //判断是不是可见
            if (typeof document.webkitHidden === 'undefined') {
                $('body').append("<a id='to_ios_market' href='https://itunes.apple.com/app/id1271022527?mt=8'></a>")
                var obj = document.getElementById('to_ios_market');
                obj.click();
            }
        }, 600);
    } 

 

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

h5跳转到 苹果 ios app store 应用商店 的APP详情页面 的相关文章

  • vue INPUT输入框始终聚焦的方法

    今天有个需求 弹出一个窗口 窗口里只有一个INPUT 要求始终聚焦在窗口中的输入框中 不管用户点哪里 都无法改变焦点 除非关闭这个弹窗 部份代码如下
  • strongswan——IKE建立过程

    strongswan的主进程为charon进程 负责IKE SA IPSec SA建立 拆除 更新及其他相关的操作 charon进程默认通过socket default插件与内核交互 用于IKE协议报文的收发 socket default插
  • Express全系列教程之(五):Express的中间件

    一 中间件 从字面意思 我们可以了解到它大概就是做中间代理操作 事实也是如此 大多数情况下 中间件就是在做接收到请求和发送响应中间的一系列操作 事实上 express是一个路由和中间件的web框架 Express 应用程序基本上是一系列中间
  • LeetCode-合并两个有序链表(java实现)

    题目如下 看完题目之后 思考的结果是用递归做应该是最佳的选择 但无奈水平真的有限 没有想出来如何用设计递归 提交的时候就没有用递归实现 运行结果可想而知 23ms 看了第一名的用时是5ms 而且代码简洁优美 不得不佩服 Definition
  • Windows2012的VPN服务与测试

    一 配置环境 1 在Windows2012安装VPN服务 勾选网络策略和访问服务与远程访问 2 安装完成后点击打开 选择 打开开始向导 选择配置远程访问的类型 仅部署VPN 3 选择自定义配置后 根据需求选择摘要 VPN需要VPN访问和NA
  • 51单片机数据传送——片外到片内(汇编语言实现)

    51单片机 数据传送 片外到片内 汇编语言实现 问题描述 把存储在片外RAM 1000H开始的16个单元 地址为1000H到100FH 内容依次搬移到片内RAM 30H开始的16个单元 地址为30H到3FH 外部RAM 1000H 100F
  • 数据结构---快速排序

    快速排序 分治法思想 基准元素的选择 元素交换 双边循环法 JAVA实现 单边循环法 JAVA实现 快速排序也是从冒泡排序演化而来 使用了 分治法 快的原因 快速排序和冒泡排序共同点 通过元素之间的比较和交换位置来达到排序的目的 快速排序和
  • elasticsearch-数据聚合

    目录 介绍 实际操作 DSL实现Metrics聚合 嵌套聚合 RestClient实现聚合 以酒店品牌为例 实现对酒店品牌 城市 星级的过滤 补6 20 32条消息 Elasticsearch 聚合查询 aggs 龙源lll的博客 CSDN
  • 成pmo了(几年前帖子,私密变公开后时间就变了)

    哈哈 我还没转正 也没项目 只是做产品 估计就和小学的语文课代表一样

随机推荐

  • border 颜色渐变

    div style border right 1px dashed fff background none width 577px div style font size 16px background color fff div div
  • C语言文本文件与二进制文件转换

    本程序要自己创建个文本格式的输入文件a1 txt 编译后能将文本文件前255字节以内的字符转换成相应的AscII码值的二进制表示 并存入输出文件a2 txt中 然后再将二进制文件还原并存入a3 txt文件 实现文件之间的转换 具体代码如下
  • vue项目cdn加速,减少webpack打包体积

    在webpack中使用cdn加速优化 减少打包体积 减少用户访问时间 文章目录 在webpack中使用cdn加速优化 减少打包体积 减少用户访问时间 1 引入cdn资源 2 在webpack基础配置文件中加入externals配置 打包 编
  • Java动态追踪技术探究

    Java动态追踪技术是指在Java应用程序运行过程中 通过监控和记录方法调用 异常 性能指标等信息 以便于分析和排查问题 优化性能 或进行安全审计等目的的技术手段 在Java开发和运维中 动态追踪技术起到了重要的作用 能够帮助开发人员和运维
  • idea中maven找不到本地仓库jar包_Maven 的这 7 个问题你思考过没有?

    专注于Java领域优质技术 欢迎关注 作者 张丰哲 在如今的互联网项目开发当中 特别是Java领域 可以说Maven随处可见 Maven的仓库管理 依赖管理 继承和聚合等特性为项目的构建提供了一整套完善的解决方案 可以说如果你搞不懂Mave
  • 自我理解:精度(precision)和召回(recall)

    1 精度 precision 精度是用于评估分类模型的一个重要指标 它反映了模型预测为正例的样本中 实际真正为正例样本的比例 注 正例样本指在二分类问题中 被标注为正类的样本 例如 在垃圾邮件分类任务中 正例样本就是真实的垃圾邮件 精度的计
  • 大学生团体天梯赛(第三届)

    题目地址 天梯赛 include
  • 树莓派LINUX内核移植

    参考博文 https editor csdn net md not checkout 1 articleId 109006969 树莓派linux内核下载地址 https github com raspberryPi 需要下载内核的版本可以
  • Hadoop的搭建,VmwareWorkstation 16pro + Ubuntu18.04.1

    文章目录 前言 一 VmwareWorkstation 16pro安装Ubuntu18 04 1 二 Ubuntu的基础配置 1 设置国内镜像源 2 下载安装Vmware Tools 三 安装Hadoop 总结 前言 Hadoop的搭建过程
  • PyQt编程实战:画出QScrollArea的scrollAreaWidgetContents内容部署层的范围矩形

    老猿Python博文目录 专栏 使用PyQt开发图形界面Python应用 老猿Python博客地址 一 引言 在 PyQt Python Qt 学习随笔 QScrollArea滚动区域详解 介绍了滚动区域的展现层 也称框架层 和内容部署层
  • python的格式化输出

    python格式化输出 被称为格式化操作符 专门用于处理字符串中的格式 包含 的字符串 被称为格式化字符串 和不同的字符串连用 不同类型的数据 需要使用不同的格式化字符 格式化字符 含义 s 字符串 d 有符号十进制整数 06d不是输出的整
  • iOS开发之 __block 与 __weak的区别理解

    资料来源1 资料来源2 block对象在block中是可以被修改 重新赋值的 使用了 weak修饰符的对象 作用等同于定义为weak的property 自然不会导致循环引用问题 因为苹果文档已经说的很清楚 当原对象没有任何强引用的时候 弱引
  • Springboot 启动过程二

    用于源码分析的代码 Github 接着启动过程一中的代码 继续debug 这一篇主要看new SpringApplication primarySources 的代码 首先还是列出问题 带着问题去看源码收获也会多些 待解答的问题 这段代码的
  • 【vcruntime140.dll文件下载】vcruntime140.dll丢失的解决方法

    vcruntime140 dll文件对一些电脑软件 电脑游戏等程序的正常运行起到关键性作用 对于弹出缺少此类文件的弹窗 用户们很多时候也摸不着头脑 程序明明上次都能正常运行 突然就弹出缺少vcruntime140 dll文件的提醒窗口 通过
  • 最详细、最仔细、最清晰的几道python习题及答案(建议收藏哦)

    名字 阿玥的小东东 学习 python c 主页 没了 今天阿玥带大家来看看更详细的python的练习题 目录 1 在python中 list tuple dict set有什么区别 主要应用在什么样的场景
  • 玩转Nginx日志

    目录标题 Nginx日志 nginx conf nginx日志切割 2 设置linux定时任务 Nginx日志 nginx conf user nobody worker processes 1 error log logs error l
  • QT------常用控件:qtlistwidget和qtlistview

    qtlistwidget和qtlistview都是用于在界面成行 成列的显示数据的 两者的区别在于 1 qtlistview可以用使用model 更便于动态添加数据 而qtlistwidget只能一条一条的增加列表项进行显示数据 使用QSt
  • 简易的学生管理系统

    文章目录 前言 一 代码 二 展示结果 1 主界面 2 输入记录 3 插入数据 4 删除数据 5 成绩排序 总结 前言 本文在链表前篇之数组的基础上写的一个简易的学生管理系统 本着练手感的目的去写的一个代码 并不是很完美 代码仅供参考 话不
  • 通过浏览器检测硬件 —— 筑梦之路

    在线硬件检测工具 测试网址1 主要检测显卡显示效果 volumeshader bm 测试网址2 可以检测cpu GPU 屏幕等精大师在线显卡测试 首页 网页版GPU性能测试工具
  • h5跳转到 苹果 ios app store 应用商店 的APP详情页面

    在开发 h5跳转到 ios系统 app store的时候遇到两个问题 原理 判断是安卓还是苹果 如果为苹果显示苹果的标签 点击a标签 执行跳转唤起APP openAPP 加一个定时器 三秒 可根据需求调整 之后 如果没有唤起成功 跳转到Ap