判断微信微信小程序及其他环境
Posted marphydemon
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了判断微信微信小程序及其他环境相关的知识,希望对你有一定的参考价值。
判断是否为微信、微信小程序、其他环境
研究背景
项目中有一个需求,在判断用户未登录的情况下跳转登录,toLogin通过window.location.href进行跳转登录。在线上环境中,发现在未登录的情况下,Iphone 小程序中偶尔跳转失效。定位代码发现判断小程序函数返回结果在跳转逻辑之后才获得结果,猜测由于判断环境代码打断跳转的进行。临时方案:跳转后通过setTimeout再进行一次跳转。
目前解决方案如下:
toLogin()
if(isMiniApp() === null)
setTimeout(() =>
toLogin()
, 100)
window.location.href='https://www.login.com'
通过资料查询得出如下解决方案,通过promise获取是否未小程序环境,保证在执行其他逻辑之前拿到是否为小程序环境的结果。
引入js
<script src="https://res.wx.qq.com/open/js/jweixin-1.3.2.js"></script>
promise封装判断函数
/**
* 判断是否为微信小程序
* @export
* @returns
*/
export function isWeChatMiniApp()
const ua = window.navigator.userAgent.toLowerCase();
return new Promise((resolve) =>
if (ua.indexOf('micromessenger') == -1)
console.log("不在微信或者小程序中")
resolve(false);
else
wx.miniProgram.getEnv((res) =>
if (res.miniprogram)
console.log("在小程序中")
resolve(true);
else //在微信中
console.log("在微信中")
resolve(false);
);
);
以上是关于判断微信微信小程序及其他环境的主要内容,如果未能解决你的问题,请参考以下文章
uni-app——运行微信微信小程序整合uView运行错误[Cannot read property ‘mark‘ of undefined]解决方案
微信微信小程序 微信开发工具 创建js文件报错 pages/module/module.js 出现脚本错误或者未正确调用 Page()
flutter 分享功能 ios端 利用MobTech的ShareSDK进行分享 支持分享到微信微信小程序网页qq微博等主流平台
微信微信小程序 微信开发工具中新创建的json文件,编译报错VM1781:2 pages/module/module.json 文件解析错误 SyntaxError: Unexpected e(代