V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
工单节点使用指南
• 请用平和的语言准确描述你所遇到的问题
• 厂商的技术支持和你一样也是有喜怒哀乐的普通人类,尊重是相互的
• 如果是关于 V2EX 本身的问题反馈,请使用 反馈 节点
shenqi
V2EX  ›  全球工单系统

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

  •  
  •   shenqi · 2018-03-29 20:03:30 +08:00 · 4500 次点击
    这是一个创建于 2439 天前的主题,其中的信息可能已经有所发展或是发生改变。

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

    网上查过,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。(识别机器信息用的库是 [email protected]

    https://ws2.sinaimg.cn/large/7108d0d3gy1fptxn1atmej21ap0qjtji.jpg

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

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

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


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

    第 1 条附言  ·  2018-03-30 12:31:36 +08:00
    猜测原因:input[type=file] 也必须进行页面的 wx.config,而且每个 url 都要进行一次 config。不过,这个只是猜测。
    1 条回复    2018-03-30 09:01:36 +08:00
    Sypher
        1
    Sypher  
       2018-03-30 09:01:36 +08:00   ❤️ 1
    现在在用 jssdk。坏处是必须要将图片上传到微信服务器,然后三天之内后台从微信服务器上拿图片
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   3544 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 24ms · UTC 10:54 · PVG 18:54 · LAX 02:54 · JFK 05:54
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.