当前位置: 首页 > article >正文

H5:实现安卓和苹果点击下载App自动跳转到对应的应用市场

一、需求场景

手机扫描下载App,需要根据不同手机自动跳转到对应的应用市场(商店)里,苹果手机直接打开App Store里指定的app页面,安卓手机如果是海外用户则打开GooglePlay 商店里指定的app页面,国内直接下载apk安装包。

二、示例

效果图

在这里插入图片描述

示例代码

<template><div><div class="tip">温馨提示</div><!-- <div class="tip">确保点击下载App即可跳转到Google Play 商店里的 指定的 app 页面  </div> --><div class="tip">推荐使用Chorme或FireFox浏览器打开此链接</div><div class="btn" @click="downloadApp"> 点击下载App </div></div></template>
<script>
export default {data() {return {url: ""}},mounted(){setTimeout(() => {this.downloadApp();}, 1000);},methods: {downloadApp() {const userAgent = navigator.userAgent;const isiOS = /iPad|iPhone|iPod/.test(userAgent) && !window.MSStream;const isAndroid = /android/i.test(userAgent);if (isiOS) {// 跳转至App Store   id000000 需要添加下载app的id// window.location.href ="https://itunes.apple.com/app/id000000";window.location.href ="https://apps.apple.com/app/id000000";} else {// const url = 'https://play.google.com/store/apps/details?id=com.test.app';const url = 'intent://details?id=com.test.app#Intent;scheme=market;package=com.android.vending;end';console.log("执行了 打开Google Play url -> ", url);// 尝试通过Intent打开Google Playwindow.location.href = url;// 设置300ms超时检测,失败则跳转下载APKsetTimeout(() => {window.location.href = 'http://www.test.com/downLoad/test.apk';console.log("执行了 从官网下载")}, 300);}}}
}
</script><style scoped lang="scss">
.btn {width: 200px;height: 50px;background-color: #E12817;align-content: center;border-radius: 10px;font-size: 20px;color: white;font-weight: bold;margin-left: 80px;margin-top: 40px;
}.tip {font-size: 16px;color: black;font-weight: normal;margin-left: 10px;margin-right: 10px;margin-top: 20px;
}
</style>

相关文章:

H5:实现安卓和苹果点击下载App自动跳转到对应的应用市场

一、需求场景 手机扫描下载App&#xff0c;需要根据不同手机自动跳转到对应的应用市场&#xff08;商店&#xff09;里&#xff0c;苹果手机直接打开App Store里指定的app页面&#xff0c;安卓手机如果是海外用户则打开GooglePlay 商店里指定的app页面&#xff0c;国内直接下载…...

【Linux】文件传输归档与压缩

目录 配置实验环境 文件传输方法--scp&#xff0c;rsync scp rsync 归档与压缩--tar&#xff0c;gz&#xff0c;bz2&#xff0c;xz&#xff0c;zip 归档---tar 压缩 zip gzip bzip2 xz 归档并压缩 gz bz2 xz 拓展du 配置实验环境 在多个linux系统进行系统传输…...

3D人脸扫描技术如何让真人“进入“虚拟,虚拟数字人反向“激活“现实?

随着虚拟人技术的飞速发展&#xff0c;超写实数字人已经成为数字娱乐、广告营销和虚拟互动领域的核心趋势。无论是企业家、知名主持人还是明星&#xff0c;数字分身正在以高度还原的形象替代真人参与各类活动&#xff0c;甚至成为品牌代言、直播互动的新宠。 3D人脸扫描&#…...

Git标签的认识

Git标签完全指南&#xff1a;从基础到企业级发布策略 前言 在软件发布领域&#xff0c;Git标签是版本管理的基石。根据2023年GitHub年度报告显示&#xff0c;85%的开源项目使用标签进行版本控制。然而&#xff0c;许多开发者仅停留在git tag的基础使用层面&#xff0c;未能充分…...

Docker实战:从零构建高可用的MySQL主从集群与Redis集群

在分布式系统架构中&#xff0c;数据库集群是保障数据高可用和性能的关键组件。本文将通过Docker技术&#xff0c;手把手教你搭建MySQL主从集群和Redis Cluster&#xff0c;并分享独创的优化技巧与运维实战经验。 一、为什么选择Docker部署集群&#xff1f; 传统数据库集群搭…...

【Rust基础】使用Rocket构建基于SSE的流式回复

背景 我们正在使用Rust开发基于RAG的知识库系统&#xff0c;其中对于模型的回复使用了常用的SSE&#xff0c;Web框架使用Rocket&#xff0c;Rocket提供了一个简单的方式支持SSE&#xff0c;但没有会话保持、会话恢复等功能&#xff0c;因此我们自己简单实现这两个功能。 使用R…...

高级java每日一道面试题-2025年4月07日-微服务篇[Nacos篇]-如何监控Nacos的运行状态?

如果有遗漏,评论区告诉我进行补充 面试官: 如何监控Nacos的运行状态&#xff1f; 我回答: 监控Nacos运行状态的综合方案 在Java高级面试中&#xff0c;监控Nacos运行状态是一个重要的技术点&#xff0c;它直接关系到微服务架构的稳定性和性能。以下是一个综合的监控方案&am…...

【3GPP核心网】【5G】精讲5G系统的策略和计费控制框架

1. 欢迎大家订阅和关注,精讲3GPP通信协议(2G/3G/4G/5G/IMS)知识点,专栏会持续更新中.....敬请期待! 目录 1. 系统架构 1.1 非漫游架构 1.2 漫游架构 1.3 支持Rx接口 2. 服务化接口及参考点 2.1 PCF 与 AF 间接口 2.2 PCF与SMF间接口 2.3 PCF与AMF间接口 2.4 V-PC…...

大前端基础学习

一、cs架构和bs架构 c&#xff1a;客户端&#xff0c; b&#xff1a;浏览器&#xff08;无需安装&#xff0c;无需更新&#xff0c;可跨平台&#xff09;√ s&#xff1a;server服务端&#xff0c;帮我们保 存信息&#xff0c;传递信息 二、 altshift向下键向下复制一行 …...

Axios 的 POST 请求:QS 处理数据的奥秘与使用场景解析

在现代前端开发中&#xff0c;Axios 已经成为了进行 HTTP 请求的首选库之一&#xff0c;它的简洁易用和强大功能深受开发者喜爱。当使用 Axios 进行 POST 请求时&#xff0c;我们常常会遇到一个问题&#xff1a;是否需要使用 QS 库来处理请求数据&#xff1f;什么时候又可以不用…...

Linux 防火墙( iptables )

目录 一、 Linux 防火墙基础 1. 防火墙基础概念 &#xff08;1&#xff09;防火墙的概述与作用 &#xff08;2&#xff09;防火墙的结构与匹配流程 &#xff08;3&#xff09;防火墙的类别与各个防火墙的区别 2. iptables 的表、链结构 &#xff08;1&#xff09;规则表 …...

【redis进阶三】分布式系统之主从复制结构(1)

目录 一 为什么要有分布式系统&#xff1f; 二 分布式系统涉及到的非常关键的问题&#xff1a;单点问题 三 学习部署主从结构的redis (1)创建一个目录 (2)进入目录拷贝两份原有redis (3)使用vim修改几个选项 (4)启动两个从节点服务器 (5)建立复制&#xff0c;要想配…...

EM储能网关ZWS智慧储能云应用(9) — 远程OTA升级

ZWS智慧储能云平台支持远程OTA固件升级&#xff0c;可以针对具体的储能设备进行升级&#xff0c;升级储能网关、EMS主控软件、PCS、BMS等。 简介 储能系统通常高度集成化&#xff0c;一体化设计&#xff0c;将EMS、BMS&#xff08;电池管理系统&#xff09;、PCS&#xff08…...

RabbitMQ 详解:核心概念、集群模式与消息分布

RabbitMQ 是一个基于高级消息队列协议&#xff08;AMQP&#xff09;的开源消息中间件&#xff0c;广泛应用于分布式系统中&#xff0c;用于实现可靠的消息传递。其强大的功能和灵活的架构使其成为构建高可用、可扩展系统的理想选择。本文整理了 RabbitMQ 的核心概念、集群模式及…...

ubuntu24.04LTS安装向日葵解决方案

去向日葵官方下载ubuntu使用的deb包 向日葵 输入如下命令安装&#xff0c;将具体版本修改成自己下载的版本 andrew in ~/下载 λ sudo dpkg -i SunloginClient_15.2.0.63064_amd64.deb 正在选中未选择的软件包 sunloginclient。 (正在读取数据库 ... 系统当前共安装有 290947…...

LoRA个关键超参数:`LoRA_rank`(通常简称为 `rank` 或 `r`)和 `LoRA_alpha`(通常简称为 `alpha`)

LoRA (Low-Rank Adaptation) 中的两个关键超参数&#xff1a;LoRA_rank&#xff08;通常简称为 rank 或 r&#xff09;和 LoRA_alpha&#xff08;通常简称为 alpha&#xff09;。 LoRA 的核心思想是&#xff0c;在对大型预训练模型&#xff08;如 LLM 或 Stable Diffusion&…...

C++11智能指针深度解析:在Visual Studio中高效管理内存

文章目录 **C++11智能指针深度解析:在Visual Studio中高效管理内存****一、C++11智能指针的核心价值****二、三大智能指针详解与Visual Studio实战****1. `std::unique_ptr`:独占所有权****2. `std::shared_ptr`:共享所有权****3. `std::weak_ptr`:打破循环引用****三、高级…...

达梦官方管理工具SQLark:自动识别外键约束、check约束与虚拟列,助力高效生成测试数据

在数据库管理和应用开发过程中&#xff0c;高质量的测试数据对于系统调试和POC测试至关重要。达梦官方推出的新一代管理工具 SQLark百灵连接&#xff0c;其数据生成功能&#xff0c;可以为应用开发者、DBA 以及测试人员带来极大便利&#xff0c;能够轻松应对各类复杂的测试场景…...

Visio绘图工具全面科普:解锁专业图表绘制新境界[特殊字符]

Visio绘图工具全面科普&#xff1a;解锁专业图表绘制新境界&#x1f31f; 在信息爆炸的时代&#xff0c;清晰、直观地呈现复杂信息变得至关重要。无论是绘制流程图&#x1f4ca;、组织结构图&#x1f465;&#xff0c;还是规划网络拓扑&#x1f5a7;&#xff0c;一款强大的绘图…...

RPCRT4!OSF_CCONNECTION::OSF_CCONNECTION函数分析之创建一个RPCRT4!OSF_CCALL--RPC源代码分析

RPCRT4!OSF_CCONNECTION::OSF_CCONNECTION函数分析之创建一个RPCRT4!OSF_CCALL 第一部分&#xff1a; 1: kd> p RPCRT4!OSF_CCONNECTION::OSF_CCONNECTION0x167: 001b:77bf6957 393dec35c877 cmp dword ptr [RPCRT4!gfRPCVerifierEnabled (77c835ec)],edi 1: kd> …...

快速认识:数据库、数仓(数据仓库)、数据湖与数据运河

数据技术核心概念对比表 概念核心定义核心功能数据特征典型技术/工具核心应用场景数据库结构化数据的「电子档案柜」&#xff0c;按固定 schema 存储和管理数据&#xff0c;支持高效读写和事务处理。实时事务处理&#xff08;增删改查&#xff09;&#xff0c;确保数据一致性&…...

不关“猫”如何改变外网IP?3种免重启切换IP方案

每次更换外网IP都要重启路由器&#xff1f;太麻烦了&#xff01;那么&#xff0c;不关猫怎么改变外网IP&#xff1f;无论是为了网络调试、爬虫需求&#xff0c;还是解决IP限制问题&#xff0c;频繁重启设备既耗时又影响效率。其实&#xff0c;更换外网IP并不一定要依赖“重启大…...

C#进阶学习(五)单向链表和双向链表,循环链表(中)双向链表

目录 一、双向链表的声明 1. 节点类声明 2. 链表类框架声明 3、实现其中的每一个函数 增删操作&#xff08;核心方法组&#xff09; 删除操作&#xff08;核心方法组&#xff09; 查询操作&#xff08;辅助方法&#xff09; 维护方法&#xff08;内部逻辑&#xff09; …...

case客户续保预测中用到的特征工程、回归分析和决策树分析的总结

文章目录 [toc]1. 回归分析概述1.1 基本概念1.2 与分类的区别 2. 常见回归算法2.1 线性回归2.2 决策树回归2.3 逻辑回归&#xff08;Logistic Regression&#xff09;2.3 其他算法补充&#xff1a;通俗版&#xff1a;决策树 vs 随机森林&#x1f333; 决策树&#xff1a;像玩「…...

Android系统通知机制深度解析:Framework至SystemUI全链路剖析

1. 前言 在Android 13的ROM定制化开发中&#xff0c;系统通知机制作为用户交互的核心组件&#xff0c;其实现涉及Framework层到SystemUI的复杂协作。本文将深入剖析从Notification发送到呈现的全链路流程&#xff0c;重点解析关键类的作用机制及系统服务间的交互逻辑&#xff…...

重学Redis:Redis常用数据类型+存储结构(源码篇)

一、SDS 1&#xff0c;SDS源码解读 sds (Simple Dynamic String)&#xff0c;Simple的意思是简单&#xff0c;Dynamic即动态&#xff0c;意味着其具有动态增加空间的能力&#xff0c;扩容不需要使用者关心。String是字符串的意思。说白了就是用C语言自己封装了一个字符串类型&a…...

Elasticsearch的Java客户端库QueryBuilders查询方法大全

matchAllQuery 使用方法&#xff1a;创建一个查询&#xff0c;匹配所有文档。 示例&#xff1a;QueryBuilders.matchAllQuery() 注意事项&#xff1a;这种查询不加任何条件&#xff0c;会返回索引中的所有文档&#xff0c;可能会影响性能&#xff0c;特别是文档数量很多时。 ma…...

js原型和原型链

js原型&#xff1a; 1、原型诞生的目的是什么呢&#xff1f; js原型的产生是为了解决在js对象实例之间共享属性和方法&#xff0c;并把他们很好聚集在一起&#xff08;原型对象上&#xff09;。每个函数都会创建一个prototype属性&#xff0c;这个属性指向的就是原型对象。 …...

usb重定向qemu前端处理

1、qemu添加spicevmc前端时会创建vmc通道。 -chardev spicevmc,idusbredirchardev0,nameusbredir red::shared_ptr<RedCharDevice> spicevmc_device_connect(RedsState *reds, SpiceCharDeviceInstance *sin, uint8_t channel_type) {auto channel(red_vmc_channel_new(r…...

OpenHarmony - 小型系统内核(LiteOS-A)(五)

OpenHarmony - 小型系统内核&#xff08;LiteOS-A&#xff09;&#xff08;五&#xff09; 六、文件系统 虚拟文件系统 基本概念 VFS&#xff08;Virtual File System&#xff09;是文件系统的虚拟层&#xff0c;它不是一个实际的文件系统&#xff0c;而是一个异构文件系统之…...