php 我是这么判断的,安卓目前没问题。不知道兼容性怎样。苹果的还没测。 function containsMiniProgram($string) { return strpos($string, 'miniProgram') !== false; } function in_wxapp_mini() { // 获取用户代理字符串 $userAgent = $_SERVER['HTTP_USER_AGENT']; //Mozilla/5.0 (Linux; Android 12; ABR-AL00 Build/HUAWEIABR-AL00; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/130.0.6723.103 Mobile Safari/537.36 XWEB/1300149 MMWEBSDK/20241101 MMWEBID/5064 MicroMessenger/8.0.54.2760(0x280036CC) WeChat/arm64 Weixin NetType/WIFI Language/zh_CN ABI/arm64 //Mozilla/5.0 (Linux; Android 12; ABR-AL00 Build/HUAWEIABR-AL00; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/130.0.6723.103 Mobile Safari/537.36 XWEB/1300149 MMWEBSDK/20241101 MMWEBID/5064 MicroMessenger/8.0.54.2760(0x280036CC) WeChat/arm64 Weixin NetType/WIFI Language/zh_CN ABI/arm64 miniProgram/wx99a9d7f497de" //dump($userAgent); //die; // 检查是否包含微信小程序的标识 if(containsMiniProgram($userAgent) ){ return true; } return false; }
小程序内置web-view的userAgent问题小程序内的web-view所打开的页面获取的userAgent中不包含小程序特征,无法识别是在小程序web-view中打开的页面,而在安卓端或开发者工具端web-view的UA中都有miniprogram或miniProgram关键字。 官方文档所提供的 [代码]window.__wxjs_environment[代码]这种方式实际使用起来诸多不便(需等待WeixinJSBridge,以及接口调用需单独传参),希望能在UA中加入特征字符串,感谢。
12-08