The fetch:user-file-async is fail

fetch:user-file-async失败了
looking at these picture
看这东西




and, it’s fail in iOS.
而且,我是在iOS下发现的。
I don’t know others will or won’t.
我不能知道其他的操作系统会还是不会

1 Like

@john-chen 为什么why
user-file可以不再失败吗
can user-file never fail?

嗯,紫大大是懂中文的……
还有……
《is fail》
failed会更好

iOS系统无法选择任何文件类型
老bug了

那就弄个input标签按钮吧

有道理,修一个吧

“< input type=“file” />”?

对的

And we also can create a input element, and set its type to “file”

1 Like
<input type="file" id="fufa" />
<script>
     function userFileAsync(callback){
         document.getElementById("fufa").click();
        //下面是callback的操作,省了()
        };
</script>

是这样?

1 Like

是的,这其实也是个思路ho

我看看这两周能不能找到时间搞一下这个问题

不是,应该是

<!DOCTYPE html>
<html>
    <head></head>
    <body>
        <input id="inp" type="file" /><br />
        <button type="button" onclick="console.log((new FileReader).readAsText(document.getElementById('inp').files[0]))">点我读取文件文本</button>
    </body>
</html>

这肯定不能用console.log吧(

其实这些可以纯js操作dom无需编写html代码的

//异步返回文件的dataurl,取消或选择非文件则返回false
new Promise(r=>{
  var e=document.createElement('input'),f=new FileReader;
  f.onloadend=n=>r(f.result);
  e.oncancel=n=>r(!1);
  e.onchange=n=>(n=e.files[0])instanceof Blob?f.readAsDataURL(n):r(!1),e.type='file';
  'function'===typeof e.showPicker?e.showPicker():e.click();
})

我发了个实验作为问题的补丁,但是还没在iOS设备上测试

hoa,你具体怎么修的

使用document.createElement创建type='file’的input元素选择文件
测试发现可以导入但是触发时只有一个比较小的类型选择窗口

修复实验:
Turtle Universe - Redirecting?
在iOS端导入文件会像正常网页一样弹出
图片图库/拍照录像/选择文件的选择框,并且拍照需要给应用相机权限

非常牛逼,你能写个补丁给tortoise-adapter.js吗,我可以热更新上去