跳转到应用市场下载

转到,应用,市场,下载 · 浏览次数 : 11

小编点评

```javascript ps: 自用的,在此简单记录 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' } ```

正文

ps: 自用的,在此简单记录

 

//判断应用市场
judeBrand() {
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'
}
},
//判断是否从微信中打开
isWeixin(){
return /MicroMessenger|WeXin|WeChat/g.test(navigator.userAgent)
},
download(){
if(this.isWeixin()){
alert("请跳转至浏览器中访问");
return;
}
let ua = navigator.userAgent;
let isAndroid = ua.indexOf("Android") > -1 || ua.indexOf("Linux") > -1; //android终端
let isIOS = !!ua.match(/\(i[^;]+;( U;)? CPU.+Mac OS X/); //ios终端
let hidden = window.document.hidden || window.document.mozHidden || window.document.msHidden || window.document.webkitHidden;
let by = 'com.twins.som'; //应用包名
if (typeof hidden === undefined || hidden === false) {
if (isAndroid) {
// 跳转 安卓应用市场地址
switch (this.judeBrand()) {
case 'xiaomi':
window.location.replace(`mimarket://details?id=`+by)
break
case 'huawei':
window.location.replace(`appmarket://details?id=`+by)
break
case 'vivo':
window.location.replace(`vivomarket://details?id=`+by)
break
case 'oppo':
window.location.replace(`oppomarket://details?id=`+by)
break
default:
window.location.replace('') //服务器地址
break
}
} else if (isIOS) {
// 跳转 app store 地址
window.location.replace(`https://apps.apple.com/cn/app/`+by)
}
}
},

与跳转到应用市场下载相似的内容:

跳转到应用市场下载

ps: 自用的,在此简单记录 //判断应用市场judeBrand() { const userAgent = navigator.userAgent.toLowerCase() const isIphone = userAgent.match(/(iphone|ipad|ipod)/i); cons

使用 Gradio 的“热重载”模式快速开发 AI 应用

在这篇文章中,我将展示如何利用 Gradio 的热重载模式快速构建一个功能齐全的 AI 应用。但在进入正题之前,让我们先了解一下什么是重载模式以及 Gradio 为什么要采用自定义的自动重载逻辑。如果您已熟悉 Gradio 并急于开始构建,请直接跳转到第三部分构建文档分析应用。 重载模式具体是做什么

驱动开发:内核层InlineHook挂钩函数

内核中的`InlineHook`函数挂钩技术其实与应用层完全一致,都是使用劫持执行流并跳转到我们自己的函数上来做处理,唯一的不同只有一个内核`Hook`只针对内核API函数,虽然只针对内核API函数实现挂钩但由于其身处在最底层所以一旦被挂钩其整个应用层都将会受到影响,这就直接决定了在内核层挂钩的效果是应用层无法比拟的,对于安全从业者来说学会使用内核挂钩也是很重要的。

驱动开发:内核RIP劫持实现DLL注入

本章将探索内核级DLL模块注入实现原理,DLL模块注入在应用层中通常会使用`CreateRemoteThread`直接开启远程线程执行即可,驱动级别的注入有多种实现原理,而其中最简单的一种实现方式则是通过劫持EIP的方式实现,其实现原理可总结为,挂起目标进程,停止目标进程EIP的变换,在目标进程开启空间,并把相关的指令机器码和数据拷贝到里面去,然后直接修改目标进程EIP使其强行跳转到我们拷贝进去的

跳跃表数据结构与算法分析

目前市面上充斥着大量关于跳跃表结构与Redis的源码解析,但是经过长期观察后发现大都只是在停留在代码的表面,而没有系统性地介绍跳跃表的由来以及各种常量的由来。作为一种概率数据结构,理解各种常量的由来可以更好地进行变化并应用到高性能功能开发中。本文没有重复地以对现有优秀实现进行代码分析,而是通过对跳跃表进行了系统性地介绍与形式化分析,并给出了在特定场景下的跳跃表扩展方式,方便读者更好地理解跳跃表数据

谁会拒绝一款开源的 3D 博客呢?

说到博客大家一定都不陌生,不管你是深耕职场多年的老鸟,还是在学校努力学习的小鸟,应该都有过一段“装扮”博客的经历,比如:放上喜欢的图片、添加炫酷的交互、换上 DIY 的博客主题等等。但不管再怎么“打扮”,也跳脱不出平面的“凡胎”。 今天 HelloGitHub 给大家带来的是一款开源的 3D 博客项

[WPF]用HtmlTextBlock实现消息对话框的内容高亮和跳转

动手写一个简单的消息对话框一文介绍了如何实现满足常见应用场景的消息对话框。但是内容区域的文字仅仅起到信息展示作用,对于需要部分关键字高亮,或者部分内容有交互性的场景(例如下图提示信息中的“what's the risk?”需要跳转)则无能为力了。本文将介绍如何在WPF中灵活的实现消息对话框中局部文字

Web应用怎样获取Access Token?

1.在联盟创建服务器应用 参考文档:开发准备 2.获取用户级Access Token 2.1 获取code 参考文档:接入华为帐号获取凭证 2.1.1 先按照跳转链接进行配置url https://oauth-login.cloud.huawei.com/oauth2/v3/authorize? r

flutter系列之:如何自定义动画路由

简介 flutter中有默认的Route组件,叫做MaterialPageRoute,一般情况下我们在flutter中进行跳转的话,只需要向Navigator中传入一个MaterialPageRoute就可以了。 但是MaterialPageRoute太普通了,如果我们想要做点不同的跳转特效应该如何

Vue3学习(二十四)- 文档页面功能开发

写在前面 这部分真的感觉超级难,其实也不能说难,主要是真的想不到这个思路应该这么做,或者说他好厉害,他怎么知道该这么设计实现。 说下难点吧,我觉得后天逻辑还好,主要是前端部分真的需要点花点时间来思考,比如布局、交互设计的实现等等。 文档页面功能开发 1、任务拆解 增加文档页面,首页点击电子书时,跳转