最近使用ionic Native 开发应用。遇到文件访问异常。将问题解决过程记录如下。
前事之不忘,后事之师!
现象
需要实现一个简易web服务,应用选择本地文件后,可以通过http下发到其他客户端。
应用使用了“cordova-plugin-webserver”提供web服务,使用“cordova-plugin-filechooser”选择本地文件。将“cordova-plugin-filechooser”返回的文件url提供给“cordova-plugin-webserver”返回文件响应。最终发现在android 6可以正常使用,换到android 10之后则不能正常使用。
系统环境:Android 10 (Realme V15)
各插件版本:
- cordova-plugin-filechooser: 1.2.0
- cordova-plugin-webserver: 1.0.1
调试
通过调试发现,在android 10 上,“cordova-plugin-filechooser”插件返回的url格式变了(不再是已“file://”开头的文件路径,而是已“content://”开头的uri);
类似图中这样,可能连名字都不一样了。