随便弄个组件,点击事件里面调用另外一个方法,另外的方法里面再调用uni.chooseImage
![dreaman](https://img-cdn-tc.dcloud.net.cn/account/identicon/ef5ffddc692070e9629543efc8a21adc.png)
- 发布:2023-01-29 14:50
- 更新:2023-01-29 14:50
- 阅读:479
产品分类: uniapp/H5
PC开发环境操作系统: Windows
PC开发环境操作系统版本号: win11
浏览器平台: Firefox
浏览器版本: 最新版手机firefox浏览器
项目创建方式: CLI
CLI版本号: 2.0.2-3061820230117001
操作步骤:
预期结果:
可以正常弹出选择图片对话框
可以正常弹出选择图片对话框
实际结果:
无反应,控制台报错:<input> picker was blocked due to lack of user activation.
无反应,控制台报错:<input> picker was blocked due to lack of user activation.
bug描述:
组件调用点击事件中调用uni.chooseImage没反应,经过跟踪发现,底层实现逻辑如下:
var n = t.count,
i = t.sourceType,
c = t.extension;
f && (document.body.removeChild(f), f = null),
f = (0, s.default) ({
count: n,
sourceType: i,
extension: c,
type: 'image'
}),
document.body.appendChild(f),
f.addEventListener('change', (function (t) {
for (var r = [
], i = t.target.files.length, o = function () {
var e,
i = t.target.files[s];
Object.defineProperty(i, 'path', {
get: function () {
return e = e || (0, a.fileToUrl) (i),
e
}
}),
s < n && r.push(i)
}, s = 0; s < i; s++) o();
var u = {
errMsg: 'chooseImage:ok',
get tempFilePaths() {
return r.map((function (t) {
var e = t.path;
return e
}))
},
tempFiles: r
};
l(e, u)
})),
f.click(),
在f.click这里,被浏览器策略阻止了
0 个回复