[微信浏览器] 安卓版内嵌浏览器 input[type=file] 概率性不能选择文件的问题

2018-03-29 20:03:30 +08:00
 shenqi

我也不知道是不是我的代码了出毛病了。同事的小米最新款快到爆的安卓也出现这问题。

网上查过,webview 的 input[type=file] 要动态获取文件权限问题,使用会有毛病,网上随便搜就一堆讨论。

于是我在 body 第一个元素写

label
  input(
    style="width: 10px;height: 10px;overflow: hidden;border: 0;z-index: 10000;position: absolute;top: 0;right: 0;padding: 0;margin: 0;opacity: 0;color: transparent;background: transparent;"
    name="test-input-file",
    id="test-input-file",
    type="file")

然后其他逻辑保留。

于是使用页面正常功能重现刚刚的那个 bug,当我的页面的上传图片的控件失效之后,最上面这个 input[type=file]也触发不了选择文件了。(网页内没有任何报错)

于是我只能预测出现这种情况时候用户都会多次点击这个控件,于是我就记录了这种情况下下用户的系统和微信版本信息,统计在 sentry 上。

如下图,基本上是判断到时安卓机器的微信浏览器。版本从 6.5.2 一直到 6.6.5。(识别机器信息用的库是 mobile-detect@1.4.1 )

希望能解决下,求解决。谢谢各位大佬,给大佬们递茶。

或者求解决方案:我的功能就是选择一张图片,然后用 cropperjs 进行切割上传。

(同样的代码,去年这个活动期间没留意过用户反映过这个问题,今年客服那边跟我讲的是:很多用户反映。看来是我的代码过期了。不过我确认了下 yarn.lock,应该没啥毛病)


明天我试试用 weixin-js-sdk 的 chooseImage 的来处理下。。。。

4494 次点击
所在节点    全球工单系统
1 条回复
Sypher
2018-03-30 09:01:36 +08:00
现在在用 jssdk。坏处是必须要将图片上传到微信服务器,然后三天之内后台从微信服务器上拿图片

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/442619

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX