小程序
小游戏
企业微信
微信支付
扫描小程序码分享
在小程序web-view,引入jweixin-1.6.0.JS后,在纯鸿蒙情况下,无法拍照。提示:chooselimage:permission denied。两个不同型号的纯鸿蒙,都是这样。其他非纯鸿蒙手机,不存在这个问题。
2 个回答
加粗
标红
插入代码
插入链接
插入图片
上传视频
在 web-view 中引入 jweixin-1.6.0.js 却无法调用相机,可能是由多种原因导致的,以下是一些常见的排查和解决方法:
权限问题:
微信公众号权限:确保你的微信公众号已获得调用相机的权限。对于微信网页开发,需要在微信公众号后台进行相应的权限配置,如在 “接口权限” 中查看是否已获得 “拍照、上传” 等相关权限。
页面权限请求:在网页代码中,确保正确请求了相机权限。在使用微信 JS-SDK 调用相机功能前,需要先通过 wx.config 配置接口注入权限验证配置,并确保配置中的 jsApiList 包含了与相机相关的接口,如 chooseImage(用于选择图片,可调用相机拍照)。例如:
javascript
wx.config({
debug: false, // 开启调试模式,调用的所有api的返回值会在客户端alert出来,若要查看传入的参数,可以在pc端打开,参数信息会通过log打出,仅在pc端时才会打印。
appId: '', // 必填,公众号的唯一标识
timestamp: , // 必填,生成签名的时间戳
nonceStr: '', // 必填,生成签名的随机串
signature: '',// 必填,签名
jsApiList: ['chooseImage'] // 必填,需要使用的JS接口列表
});
JS-SDK 配置错误:
签名计算错误:wx.config 中的 signature 计算必须准确。签名的计算涉及到 appId、timestamp、nonceStr 以及网页的 url 等信息,需要按照微信官方提供的签名算法进行计算。如果签名计算错误,wx.config 会失败,导致无法调用相机等接口。
URL 问题:确保 wx.config 中传入的 url 是当前网页的完整 URL(包括 http 或 https 协议头),并且与微信公众号后台配置的网页授权域名一致。
web-view 相关问题:
web-view 层级问题:在某些情况下,web-view 可能会被其他元素遮挡,导致相机无法正常弹出或显示。检查页面布局,确保 web-view 没有被其他元素覆盖。
web-view 与小程序的通信问题:如果是在小程序的 web-view 中使用微信 JS-SDK,需要注意 web-view 与小程序之间的通信。确保 web-view 所在的小程序页面已经正确配置了 web-view 的 src 属性,并且与引入 jweixin-1.6.0.js 的网页对应。
浏览器兼容性问题:
虽然微信 JS-SDK 主要是为微信内置浏览器设计的,但在某些情况下,也可能存在浏览器兼容性问题。可以尝试在不同的设备和微信版本上进行测试,查看是否是特定设备或版本导致的问题。
代码逻辑错误:
检查调用相机的代码逻辑是否正确。例如,在调用 wx.chooseImage 等接口时,是否正确处理了接口的回调函数。以下是一个简单的调用 chooseImage 的示例:
wx.ready(function () {
wx.chooseImage({
count: 1, // 默认9
sizeType: ['original', 'compressed'], // 可以指定是原图还是压缩图,默认二者都有
sourceType: ['album', 'camera'], // 可以指定来源是相册还是相机,默认二者都有
success: function (res) {
var localIds = res.localIds; // 返回选定照片的本地ID列表,localId可以作为img标签的src属性显示图片
}
通过以上步骤逐一排查,应该能够找到并解决在 web-view 中引入 jweixin-1.6.0.js 后无法调用相机的问题。
你好,麻烦通过点击下方“反馈信息”按钮,提供出现问题的。
没权限得嘛,是没有提示是否同意,还是提示得时候选择了不同意哦
关注后,可在微信内接收相应的重要提醒。
请使用微信扫描二维码关注 “微信开放社区” 公众号
在 web-view 中引入 jweixin-1.6.0.js 却无法调用相机,可能是由多种原因导致的,以下是一些常见的排查和解决方法:
权限问题:
微信公众号权限:确保你的微信公众号已获得调用相机的权限。对于微信网页开发,需要在微信公众号后台进行相应的权限配置,如在 “接口权限” 中查看是否已获得 “拍照、上传” 等相关权限。
页面权限请求:在网页代码中,确保正确请求了相机权限。在使用微信 JS-SDK 调用相机功能前,需要先通过 wx.config 配置接口注入权限验证配置,并确保配置中的 jsApiList 包含了与相机相关的接口,如 chooseImage(用于选择图片,可调用相机拍照)。例如:
javascript
wx.config({
debug: false, // 开启调试模式,调用的所有api的返回值会在客户端alert出来,若要查看传入的参数,可以在pc端打开,参数信息会通过log打出,仅在pc端时才会打印。
appId: '', // 必填,公众号的唯一标识
timestamp: , // 必填,生成签名的时间戳
nonceStr: '', // 必填,生成签名的随机串
signature: '',// 必填,签名
jsApiList: ['chooseImage'] // 必填,需要使用的JS接口列表
});
JS-SDK 配置错误:
签名计算错误:wx.config 中的 signature 计算必须准确。签名的计算涉及到 appId、timestamp、nonceStr 以及网页的 url 等信息,需要按照微信官方提供的签名算法进行计算。如果签名计算错误,wx.config 会失败,导致无法调用相机等接口。
URL 问题:确保 wx.config 中传入的 url 是当前网页的完整 URL(包括 http 或 https 协议头),并且与微信公众号后台配置的网页授权域名一致。
web-view 相关问题:
web-view 层级问题:在某些情况下,web-view 可能会被其他元素遮挡,导致相机无法正常弹出或显示。检查页面布局,确保 web-view 没有被其他元素覆盖。
web-view 与小程序的通信问题:如果是在小程序的 web-view 中使用微信 JS-SDK,需要注意 web-view 与小程序之间的通信。确保 web-view 所在的小程序页面已经正确配置了 web-view 的 src 属性,并且与引入 jweixin-1.6.0.js 的网页对应。
浏览器兼容性问题:
虽然微信 JS-SDK 主要是为微信内置浏览器设计的,但在某些情况下,也可能存在浏览器兼容性问题。可以尝试在不同的设备和微信版本上进行测试,查看是否是特定设备或版本导致的问题。
代码逻辑错误:
检查调用相机的代码逻辑是否正确。例如,在调用 wx.chooseImage 等接口时,是否正确处理了接口的回调函数。以下是一个简单的调用 chooseImage 的示例:
javascript
wx.ready(function () {
wx.chooseImage({
count: 1, // 默认9
sizeType: ['original', 'compressed'], // 可以指定是原图还是压缩图,默认二者都有
sourceType: ['album', 'camera'], // 可以指定来源是相册还是相机,默认二者都有
success: function (res) {
var localIds = res.localIds; // 返回选定照片的本地ID列表,localId可以作为img标签的src属性显示图片
}
});
});
通过以上步骤逐一排查,应该能够找到并解决在 web-view 中引入 jweixin-1.6.0.js 后无法调用相机的问题。
没权限得嘛,是没有提示是否同意,还是提示得时候选择了不同意哦