uni-app 检测是否已安装微信客户端问题,已安装微信但一直返回false
uni-app 检测是否已安装微信客户端问题,已安装微信但一直返回false
产品分类:
uniapp/App
PC开发环境
| 操作系统 | 版本号 |
|---|---|
| Windows | win 10 |
手机系统
| 系统 | 版本号 | 厂商 | 机型 |
|---|---|---|---|
| Android | Android 11 | 小米 | K40 |
其他信息
- 页面类型:vue
- 打包方式:云端
- 项目创建方式:HBuilderX
- App下载地址或H5网址:https://sj.qq.com/myapp/detail.htm?apkName=com.jiajudashi&info=9175327BCAAF1580B6676C726E6DFA65
示例代码:
plus.runtime.isApplicationExist({pname:'com.tencent.mm',action:'weixin://'})
操作步骤:
plus.runtime.isApplicationExist({pname:'com.tencent.mm',action:'weixin://'})
- APP端检测是否已安装微信,在小米k40中返回false,但实际已经安装微信。
预期结果:
plus.runtime.isApplicationExist({pname:'com.tencent.mm',action:'weixin://'})
- 希望返回true
实际结果:
plus.runtime.isApplicationExist({pname:'com.tencent.mm',action:'weixin://'})
- APP端检测是否已安装微信,在小米k40中返回false,但实际已经安装微信。希望尽快给个结果
bug描述:
plus.runtime.isApplicationExist({pname:'com.tencent.mm',action:'weixin://'})
- 检测是否安装微信返回false,但实际已安装微信。目前出现这种情况的手机型号为小米K40,这种情况导致所有与微信相关的api都无法正常使用,包括微信登录,微信分享,微信支付
更多关于uni-app 检测是否已安装微信客户端问题,已安装微信但一直返回false的实战教程也可以访问 https://www.itying.com/category-93-b0.html
2 回复
有没有人能回复一下?
更多关于uni-app 检测是否已安装微信客户端问题,已安装微信但一直返回false的实战教程也可以访问 https://www.itying.com/category-93-b0.html
在Android 11及以上版本中,由于系统权限策略变更,plus.runtime.isApplicationExist 检测应用安装状态的机制可能失效。特别是小米等定制系统对应用可见性做了进一步限制。
建议改用以下方案:
- 使用URL Scheme检测:通过尝试启动微信的scheme并捕获异常来判断
function checkWechatInstall() {
return new Promise((resolve) => {
plus.runtime.openURL('weixin://', (e) => {
resolve(true)
}, (e) => {
resolve(false)
})
})
}
- Android专属方案:通过查询应用列表检测(需配置权限)
// mainfest.json中配置
"android": {
"permissions": ["QUERY_ALL_PACKAGES"]
}
// 检测代码
plus.android.requestPermissions(['android.permission.QUERY_ALL_PACKAGES'], () => {
const packageManager = plus.android.invoke(plus.android.runtimeMainActivity(), 'getPackageManager')
const packageInfo = plus.android.invoke(packageManager, 'getPackageInfo', 'com.tencent.mm', 0)
console.log(!!packageInfo)
})
- 兼容方案:结合使用检测与异常处理
async function checkWechat() {
const installed = await checkWechatInstall()
if (!installed) {
// 降级处理或提示用户手动操作
uni.showModal({content: '未检测到微信,请确认是否安装'})
}
return installed
}

