朝圣言
扫描关注朝圣言

手机扫描二维码

cordova+cordova-plugin-x5-webview(x5)内核在input(type=file)无法选取照片的问题

朝圣言2019-06-08前端仕锦 2492 1A+A-

在我研究了flutter和mpvue后,我决定放弃mui以及flutter和mpvue,至于什么原因,日后文章会说明。目前我用的是vue-cli3+cordova;

但是cordova原生内核毕竟是比较老的,css中使用env可能会导致错误。于是必须引入其他内核最为替代;

目前已知的有crosswalk腾讯x5内核

crosswalk:我试过,但是放弃了。原因不像网上说的那样是因为安装包大。而是因为我安装不了各种报错还运行不起来,本着坚持不懈的原则我放弃了!!!╮( ̄▽ ̄")╭ 

最后我选择了我可以运行起来的x5内核

但是我发现一个很可怕的问题

在第一次运行app,一切的input(type=file)可以调起相册,但是选择照片后无法返回路径????我用的是红米做测试机;

基于我对鹅厂的信任!我甚至一度怀疑是我用的样式框架问题

p.s.我用的是滴滴的cube-ui这个在后期的文章我也会说明

最后用了各种方法测试,框架问题(明知道框架问题导致这个问题的可能性很低,但是我以为选择信任鹅厂);


就在今天,我决定花一天时间根治这个问题??

所以打开了as的debug模式

前端的研究android也是够够了。

好吧不吐槽了,看下我发现了什么

cordova+cordova-plugin-x5-webview(x5)内核在input(type=file)无法选取照片的问题  android cordova bug 鹅厂 js 第1张

选择图片以后报错了

错误位置在

cordova+cordova-plugin-x5-webview(x5)内核在input(type=file)无法选取照片的问题  android cordova bug 鹅厂 js 第2张

百度大法?谷歌大法?

需要使用

Uri[] result = android.webkit.WebChromeClient.FileChooserParams.parseResult(resultCode, intent);

替换

Uri[] result = FileChooserParams.parseResult(resultCode, intent);

正确的如下

cordova+cordova-plugin-x5-webview(x5)内核在input(type=file)无法选取照片的问题  android cordova bug 鹅厂 js 第3张

然后就可以正常上传了

鹅厂出来挨打

当然我希望官方可以处理下这个问题,毕竟我们手动处理只能针对这个问题而处理,不知道是否对其他地方有影响!!!!

文章关键词
android
cordova
bug
鹅厂
js
发表评论