我无法请求文件系统,在我通过浏览器打开 ***.doc 后,无论 childBroswer 或默认 webview
Posted
技术标签:
【中文标题】我无法请求文件系统,在我通过浏览器打开 ***.doc 后,无论 childBroswer 或默认 webview【英文标题】:I can not request fileSystem,After I open a ***.doc by broswer whatever childBroswer or default webview 【发布时间】:2012-04-20 05:19:55 【问题描述】:我是phonegap 的新手。我在ios 中使用cordova1.5。 如果我在没有 *.doc 的情况下通过 broswer 打开,一切都会好起来的,我仍然会得到 fileSytem。 例如:gif,jpg,png,txt,html,pdf。
在我通过浏览器打开 *.doc 并关闭新视图后。 childBroswer(plugin),default webview,"file:///"(location),"http://"(net),全部 origin webview 不会再获取 fileSystem 了。
这是一个错误吗?正常吗?
【问题讨论】:
你有一些代码可以作为例子展示吗? 【参考方案1】:不确定您是否设法解决了这个问题,但是: Cordova 扩展了 NSMutableArray 以添加一个 pop 方法。当您打开一个 word 文档时,查看器会覆盖 Cordova 版本的 pop,当您返回应用程序时,Cordova 开始使用该版本。
为确保您遇到同样的问题,请创建一个多次调用 [argument pop] 的插件。加载 word 文档后,您应该注意到行为发生了变化。
您可以通过执行以下代码来解决此问题,您需要在显示文档之前存储 store 方法,并在关闭后调用 restore 。
导入 objc/runtime.h 导入 objc/message.h
@实现 ...
静态 IMP cordovaPopImplementation = NULL; 静态 const char* cordovaPopEncoding = NULL;
+(void)storeCordovaPop 方法 popMethod = class_getInstanceMethod([NSMutableArray 类], @selector(pop)); 如果(!cordovaPopImplementation) cordovaPopImplementation = method_getImplementation(popMethod); cordovaPopEncoding = method_getTypeEncoding(popMethod);
+(void)restoreCordovaPop class_replaceMethod([NSMutableArray 类],@selector(pop),cordovaPopImplementation,cordovaPopEncoding);
【讨论】:
以上是关于我无法请求文件系统,在我通过浏览器打开 ***.doc 后,无论 childBroswer 或默认 webview的主要内容,如果未能解决你的问题,请参考以下文章
为啥网页打开错误上面出现个 HTTP 400错误的请求? 急..
无法批量加载,因为无法打开文件“ File.csv”。操作系统错误代码5(访问被拒绝。)
使用 AngularJS 发送 GET 请求时无法从 WebStorm IDE 执行“打开”无效 URL