在手机浏览器中打开指定的应用商店

前言

大牛:你们这应用下载太慢了,为何不跳转到手机自带的应用商店下载,还不占用你们服务器的资源!
程序猿:哇!!!是的啊!

一、如何区分现在运行在哪一个厂商的手机里面?

下面仅仅列出了:华为、小米、OPPO、VIVO这4个厂商,因为我们之上架了这4个商店。

    function verifyManufacturer() {const userAgent = navigator.userAgent.toLowerCase()const isIphone = userAgent.match(/(iphone|ipad|ipod)/i);const isHuawei = userAgent.match(/huawei/i);const isHonor = userAgent.match(/honor/i);const isOppo = userAgent.match(/oppo/i);const isOppoR15 = userAgent.match(/PACM00/i);const isVivo = userAgent.match(/vivo/i);const isXiaomi = userAgent.match(/mi\s/i);const isXIAOMI = userAgent.match(/xiaomi/i);const isXiaomi2s = userAgent.match(/mix\s/i);const isRedmi = userAgent.match(/redmi/i);if (isIphone) {return 'iphone'} else if (isHuawei || isHonor) {return 'huawei';} else if (isOppo || isOppoR15) {return 'oppo';} else if (isVivo) {return 'vivo';} else if (isXiaomi || isRedmi || isXiaomi2s || isXIAOMI) {return 'xiaomi';} else {return 'other'}}

二、如果是通过QQ、微信、支付宝打开的网址怎么办?

    function channelSource() {var ua = navigator.userAgent.toLowerCase();if (ua.match(/MicroMessenger/i) == "micromessenger") {return "weixin";} else if (ua.match(/QQ/i) == "qq") {return "QQ";} else if (ua.match(/Alipay/i) == "alipay" && payway == 2) {return "alipay";}return false;}

三、打开指定应用商店

如果是通过这几个厂商的浏览器中打开的则直接跳转到对应的应用商店,如果不是通过这几个应用商店打开则只能通过自己的服务器上下载了。

 function goDownload() {const iosLinkUrl = 'IOS的appstore应用地址';const androidLinkurl = '自己服务器的下载地址';if (channelSource()) {//内置浏览器  可加提示使其打开手机自带浏览器window.location.href = androidLinkurl;return;}const huaweiUrl = 'appmarket://details?id=Android包名';const oppoUrl = "oppomarket://details?packagename=Android包名";const vivoUrl = "vivomarket://details?id=Android包名";const xiaomiUrl = 'mimarket://details?id=Android包名';switch (this.verifyManufacturer()) {case 'iphone':window.location.href = iosLinkUrl;break;case 'xiaomi':window.location.href = xiaomiUrl;break;case 'huawei':window.location.href = huaweiUrl;break;case 'vivo':window.location.href = vivoUrl;break;case 'oppo':window.location.href = oppoUrl;break;default:window.location.href = androidLinkurl;break;}}

四、完整代码

<!DOCTYPE html>
<html lang="en">
<head><meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1"><meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no"><meta charset="UTF-8"><title>下载中心</title><meta name="description" content=""><meta name="keywords" content=""><link href="__CDN__/assets/css/bootstrap.css" rel="stylesheet"><script src="__CDN__/assets/js/jquery.min.js"></script><script type="text/javascript" src="__CDN__/assets/js/bootstrap.min.js"></script><style type="text/css" media="all">.weixin-tip {display: none;position: fixed;left: 0;top: 0;background: rgba(0, 0, 0, 0.8);filter: alpha(opacity=80);height: 100%;width: 100%;z-index: 100;}.weixin-tip p {text-align: center;margin-top: 10%;padding: 0 5%;}.img1 {width: 100%;height: 100%;filter: alpha(opacity=100);-moz-opacity: 0.4;-khtml-opacity: 0.5;opacity: 0.5;}</style>
</head>
<body>
<div class="weixin-tip" id="weixin_tip"><img src="http://qny.ruixue.xingnuo.vip/uploads/20231026/FqotZR59umvmB5JtGVWyTHIFqyOa.jpg" class="img1"/>
</div>
<div id="down" ><div class="col-md-12 text-center" style="margin-top:200px;display:flex;flex-direction: column;"><span ><img src="{$logo|htmlentities}" style="width: 60px;height: 60px;"></span><span style="font-size: 24px;" >小伙伴儿</span><div><span style="color:#a1a1a1;">用一次&nbsp&nbsp牛一次</span></div></div><div class="col-md-12 text-center" style="margin-top:50px;"><a id="url" href="{$a_url}" download></a><button onclick="downLoadAppOwen();" style="width: 85%;height: 60px;border-radius: 25px;background-color: #22d49a;outline:none;border: none"><span style="color:#fff;font-size: 20px;margin-top:20px;margin-left:10px;">下载APP</span></button></div>
</div>  
<script type="text/javascript" charSet="utf-8">var ua = navigator.userAgent.toLowerCase();if (ua.match(/MicroMessenger/i) == "micromessenger") {var winHeight = window.innerHeight;var weixin_top = document.getElementById('weixin_tip');weixin_top.style.display = 'block';weixin_top.style.height = winHeight;var down = document.getElementById('down');down.style.display = 'none';} else { var weixin_top = document.getElementById('weixin_tip');weixin_top.style.display = 'none'; var down = document.getElementById('down');down.style.display = 'block';goDownload(); }function downLoadAppOwen() {var url = '自己服务器的下载地址';var isIOS = /(iPhone|iPad|iPod)/i.test(navigator.userAgent); // 通过User-Agent判断是否为iOS设备var isAndroid = /android/i.test(navigator.userAgent) && !isIOS; // 通过User-Agent判断是否为Android设备if(isIOS){url = 'IOS的appstore应用地址'}window.location.href = url;}</script>
</body>
</html>

五、总结

上面包含了打开ios的应用商店和Android的应用商店。
ios的打开应用商店很简单,因为ios只用一个厂商。
Android手机厂商就多了有很多。华为、oppo、vivo、小米等等

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/708590.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Bert-as-service 实战

参考&#xff1a;bert-as-service 详细使用指南写给初学者-CSDN博客 GitHub - ymcui/Chinese-BERT-wwm: Pre-Training with Whole Word Masking for Chinese BERT&#xff08;中文BERT-wwm系列模型&#xff09; 下载&#xff1a;https://storage.googleapis.com/bert_models/…

hive执行select count(1)返回0

背景&#xff1a; 做数据质量检核任务的时候&#xff0c;有些数据表有数据&#xff0c;直接查hive执行select count(1) from table返回的值一直是0 问题原因&#xff1a; hive通过select count(1)或者select count(*) 查询的是元数据库里面的rownum,如果数据表数据是通过load、…

使用Django的admin功能管理数据_vscode

之前的文章 项目 hello_django, app名 hello&#xff0c;已有的model LogMessage&#xff1a; https://blog.csdn.net/weixin_44741835/article/details/136202771?spm1001.2014.3001.5502 参考得到电子书&#xff1a;第八章。 https://www.dedao.cn/ebook/reader?idrEQKv6…

linux系统-----------搭建LNMP 架构

PHP(Hypertext Preprocessor 超文本预处理器)是通用服务器端脚本编程语言&#xff0c;主要用于web开发实现动态web页面&#xff0c;也是最早实现将脚本嵌入HTML源码文档中的服务器端脚本语言之一。同时&#xff0c;php还提供了一个命令行接口&#xff0c;因此&#xff0c;其也可…

能在手机上运行,仅仅0.5B大小的小语言模型MobiLlama

模型介绍 该模型基于LLaMA-7B架构设计&#xff0c;旨在能够在边缘设备上高效运行&#xff0c;无需将数据发送到远程服务器或云端处理。如智能手机、平板电脑、智能手表等。MobiLlama模型虽然体积小、对资源的需求低&#xff0c;但仍能提供高精度的语言理解和生成能力。项目还提…

java 通过 microsoft graph 调用outlook

废话不多说 一 官方文档 先看一下官方文档&#xff0c;https://learn.microsoft.com/zh-cn/graph/tutorials/java?contextoutlook%2Fcontext&tabsaad&tutorial-step1 其中的代码&#xff0c;可以通过地址下载&#xff1a;https://developer.microsoft.com/en-us/gra…

NutUI + taro +vue 开发遇到的问题 使用popup组件 内部元素滚动遇到的的问题

1 popup 弹出内容时 弹出的框内元素数据很长需要滚动时 本地可以正常滚动 打包成小程序后无法滚动 如这样的免责条款内容 代码如下 解决办法 1 把2处的单位换成百分比 弹框能滚动但是 是popup 里面所有的元素都一起滚动 导致标题都滚走了 2 scroll-y 改成&#xff1a; :scrol…

单片机05__串口USART通信__按键控制向上位机传输字符串

串口USART通信 通用UART介绍 1.通信的概念 计算机与外界进行信息交换的过程称之为通信。 在通信的过程中&#xff0c;通信双方都需要遵守的规则称之为通信协议。 硬件协议&#xff1a;将数据以什么样的方式传输过去 软件协议&#xff1a;将数据以什么样的顺序传输过去 2.常用…

Android 通知--判断通知是否有跳转

一. 从应用层来分析 在 Android 中&#xff0c;可以通过 PendingIntent 来实现有跳转的通知和没有跳转的通知的区别。具体来说&#xff0c;有跳转的通知会设置一个 PendingIntent&#xff0c;当用户点击通知时会触发该 PendingIntent&#xff0c;打开指定的界面或执行特…

C++ 高级面试题:解释 C++ 中的抽象基类和纯虚函数

解释 C 中的抽象基类和纯虚函数 在C中&#xff0c;抽象基类和纯虚函数是面向对象编程中的重要概念&#xff0c;用于实现多态性和接口规范。它们通常与继承和多态结合使用&#xff0c;以实现接口的统一定义和派生类的不同实现。 抽象基类&#xff08;Abstract Base Class&…

SpringBoot-集成Elasticsearch

依赖 <dependency><groupId>com.alibaba</groupId><artifactId>fastjson</artifactId><version>1.2.62</version> </dependency> <dependency><groupId>org.springframework.boot</groupId><artifactId…

微服务之qiankun主项目+子项目搭建

主项目使用history&#xff0c;子项目使用hash模式 1. 下载安装"qiankun": "^2.10.13"2. 手动调用qiankun,使用vue脚手架搭建的项目1. 主项目配置&#xff08;我使用的是手动调用乾坤&#xff0c;在指定页面显示内容&#xff09;1. 要使用的页面中引入乾坤…

MyBatis概述

三层架构 表现层&#xff1a;直接和前端交互&#xff0c;接受AJAX请求&#xff0c;返回json数据业务层&#xff1a;一是处理前端的请求&#xff0c;二是返回持久层获取的数据持久层(数据访问层)&#xff1a;直接操作数据库&#xff0c;完成CRUD&#xff0c;返回数据给业务层 …

李沐动手学习深度学习——3.2练习

以下是个人理解&#xff0c;希望进行讨论求解。 练习 1. 如果我们将权重初始化为零&#xff0c;会发生什么。算法仍然有效吗&#xff1f; 根据SGD算法公式如上&#xff0c;第一次迭代的值可知w只与b相关&#xff0c;而对于b的迭代更新&#xff0c;只是与b的初始值相关&#x…

docker中hyperf项目配置虚拟域名

在使用hyperf框架时&#xff0c;直接用了docker环境进行开发 下载镜像运行容器 docker run --name hyperf -v /data/project:/data/project -p 9501:9501 -itd -w /data/project --privileged -u root --entrypoint /bin/sh 镜像ID配置docker-compose.yml version: "3.…

也谈AIGC和ChatGPT的区别?

AIGC 和 ChatGPT 的区别 定义 AIGC (人工智能生成内容)&#xff1a;一种人工智能技术&#xff0c;用于生成类似人类的文本、图像、音频和视频等内容。ChatGPT&#xff1a;OpenAI 开发的大型语言模型&#xff0c;是 AIGC 的一种具体实现。 目的 AIGC&#xff1a;广泛用于内容…

亚马逊自养号测评:如何安全搭建环境,有效规避风险

要在亚马逊上进行自养号测评&#xff0c;构建一个真实的国外环境至关重要。这包括模拟国外的服务器、IP地址、浏览器环境&#xff0c;甚至支付方式&#xff0c;以创建一个完整的国际操作环境。这样的环境能让我们自由注册、养号并下单&#xff0c;确保所有操作均符合国际规范。…

Gin 框架简单上手

引言 Gin 是一个基于 Go 语言的 Web 框架&#xff0c;旨在提供高性能和高效的方式来构建 Web 应用程序。它简单易用&#xff0c;同时又提供了丰富的功能和灵活的扩展性。本文将带你深入学习 Gin 框架&#xff0c;从安装开始&#xff0c;逐步深入探索其各项功能&#xff0c;包括…

企业级指针仪表读数YOLOV8NANO

企业级指针仪表读数&#xff0c;采用YOLOV8NANO训练&#xff0c;检测表盘和表芯&#xff0c;得到PT模型&#xff0c;然后转换ONNX&#xff0c;让OPENCV调用。然后提取表芯区域&#xff0c;通过极坐标转换为直角坐标&#xff0c;再通过检测指针和刻度&#xff0c;换算成比例&…

Chapter 8 - 19. Congestion Management in TCP Storage Networks

Queue Depth Monitoring and Microburst Detection Queue depth monitoring and microburst detection capture the events that may cause congestion at a lower granularity but are unnoticed by other means due to long polling intervals. 队列深度监控和微爆检测可捕捉…