我无法请求文件系统,在我通过浏览器打开 ***.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错误的请求? 急..

无法在 XAMPP 中打开现有页面?

无法批量加载,因为无法打开文件“ File.csv”。操作系统错误代码5(访问被拒绝。)

使用 AngularJS 发送 GET 请求时无法从 WebStorm IDE 执行“打开”无效 URL

无法再通过 CMD+D 打开开发菜单或通过 CMD+R 重新加载

为啥我无法通过普通浏览器请求获得 ajax 请求的响应? [复制]