起步软件技术论坛
搜索
 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 2876|回复: 5

[处理中6] 关于APP打开文件的问题

[复制链接]

116

主题

276

帖子

510

积分

高级会员

Rank: 4

积分
510
QQ
发表于 2017-6-1 14:09:07 | 显示全部楼层 |阅读模式
本帖最后由 jjsun 于 2017-6-1 14:43 编辑

当文件名中含有#时,
1.使用FileApi.js的browse方法打开APP本地文件,如果该文件名称中含有“#“(如“1.guanyuan5#.pdf”),则无法打开。实际是调用window.open()打开文件,browse:function(url,fileName, option){
                        var dtd = $.Deferred();
                        var self = this;
                        if(Browser.isX5App){
                                if(this._isLocalFile(url)){
                                        if(Browser.isAndroid){
                                                window.open(url,"_system");
                                                dtd.resolve(url);
                                        }else if(Browser.isIOS){
                                                window.open(url, '_blank', 'toolbarposition=top,location=no,enableViewportScale=yes');
                                                dtd.resolve(url);
                                        }


2.使用resolveLocalFileSystemURL(fname)判断文件是否存在,也是显示不存在。

但是app本身的文件管理器中可以打开该文件名含有#的文件的。
#在js中好像不是转义字符的,
也许存在其他字符有类似现象,

请问如何解决此类问题?


另外,请问
1.cordova.plugins.disusered.open,与 cordova.plugins.fileOpener2.open有什么区别?
2.这两个open源文件分别在什么地方?
发表于 2017-6-1 14:44:39 | 显示全部楼层
本帖最后由 liangyongfei 于 2017-6-1 14:46 编辑

url上有特殊字符!
你试试通过字符串编码的方式处理一下
比如
encodeURI('url');

url上的特殊字符,确实是有影响的!
或者你试试
http://docs.wex5.com/wex5-app-question-list-2065/

Utils.getShareUrl(文件url地址)


处理一下URL ,特殊字符都会被转掉的!
qq:1912779713
WeX5教程--WeX5下载
回复 支持 反对

使用道具 举报

116

主题

276

帖子

510

积分

高级会员

Rank: 4

积分
510
QQ
 楼主| 发表于 2017-6-1 14:57:20 | 显示全部楼层
liangyongfei 发表于 2017-6-1 14:44
url上有特殊字符!
你试试通过字符串编码的方式处理一下
比如

使用过encodeURI('url'),没有效果,日志显示 执行encodeURI('url');对 # 字符没有任何处理
回复 支持 反对

使用道具 举报

发表于 2017-6-1 16:19:37 | 显示全部楼层
jjsun 发表于 2017-6-1 14:57
使用过encodeURI('url'),没有效果,日志显示 执行encodeURI('url');对 # 字符没有任何处理 ...

app本身的文件管理器中可以打开该文件名含有#的文件的。

那你就找到它的源码看一下吧!
他是怎么写的??
需要自己跟一下案例代码
qq:1912779713
WeX5教程--WeX5下载
回复 支持 反对

使用道具 举报

116

主题

276

帖子

510

积分

高级会员

Rank: 4

积分
510
QQ
 楼主| 发表于 2017-6-1 16:24:06 | 显示全部楼层
liangyongfei 发表于 2017-6-1 16:19
app本身的文件管理器中可以打开该文件名含有#的文件的。

那你就找到它的源码看一下吧!

app本身的文件管理器是安卓系统自带的,或者是第3方开发的,如超星文件管理器等,不是webx5提供的
使用cordova.plugins.fileOpener2.open可以打开带#的文件,但使用cordova.plugins.disusered.open却不行,原因待查找。。。。。。fileOpener2.open使用起来太麻烦,每次都需要指定文件的mimeType。。。。

期望webx5的高手们能给出原因,谢谢
回复 支持 反对

使用道具 举报

发表于 2017-6-1 17:39:11 | 显示全部楼层
jjsun 发表于 2017-6-1 16:24
app本身的文件管理器是安卓系统自带的,或者是第3方开发的,如超星文件管理器等,不是webx5提供的
使用cor ...

可能是插件存在bug
需要看源码才知道的! 特殊字符有影响吧!

你好楼主,这个问题需要我在本地环境进行问题重现,所以会花费较长时间,请你耐心等待,我完成后会第一时间反馈结果,谢谢!2017060100007
qq:1912779713
WeX5教程--WeX5下载
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|X3技术论坛|Justep Inc.    

GMT+8, 2024-5-6 06:52 , Processed in 0.071922 second(s), 23 queries .

Powered by Discuz! X3.4

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表