适用于 iOS 的 fileOpener2 Phonegap/cordova 插件中的正确文件路径
Posted
技术标签:
【中文标题】适用于 iOS 的 fileOpener2 Phonegap/cordova 插件中的正确文件路径【英文标题】:correct file path in fileOpener2 Phonegap/cordova plugin for iOS 【发布时间】:2014-04-01 08:36:35 【问题描述】:有没有人知道 Phonegap/cordova 应用程序的 fileOpener2 插件中文件的正确路径是什么?尤其是在 ios 版本中 我已经试过了:
cordova.plugins.fileOpener2.open(
'examplePicture.jpg',
'image/jpeg',
error : function(errorObj)
alert('Error status: ' + errorObj.status + ' - Error message: ' + errorObj.message);
,
success : function ()
alert('file opened successfully');
);
如果我创建一个<img src="examplePicture.jpg">
标签,图片将正确显示。 Safari 调试器告诉我找不到资源,如果我尝试在 iOS 模拟器中测试该资源,应用程序会因以下错误而崩溃:
2014-04-01 10:23:31.766 MobileApp[1162:70b] *** Terminating app due to uncaught exception 'NSInternalInconsistencyException', reason: 'UIDocumentInteractionController: invalid scheme (null). Only the file scheme is supported.'
*** First throw call stack:
(
0 CoreFoundation 0x000e95e4 __exceptionPreprocess + 180
1 libobjc.A.dylib 0x01c628b6 objc_exception_throw + 44
2 CoreFoundation 0x000e9448 +[NSException raise:format:arguments:] + 136
3 Foundation 0x01842fee -[NSAssertionHandler handleFailureInMethod:object:file:lineNumber:description:] + 116
4 UIKit 0x007e5a7e -[UIDocumentInteractionController setURL:] + 201
5 UIKit 0x007e524f -[UIDocumentInteractionController initWithURL:] + 77
6 UIKit 0x007e51ea +[UIDocumentInteractionController interactionControllerWithURL:] + 59
7 MobileApp 0x00030da5 __20-[FileOpener2 open:]_block_invoke_2 + 69
8 libdispatch.dylib 0x021b67f8 _dispatch_call_block_and_release + 15
9 libdispatch.dylib 0x021cb4b0 _dispatch_client_callout + 14
10 libdispatch.dylib 0x021b975e _dispatch_main_queue_callback_4CF + 340
11 CoreFoundation 0x0014ea5e __CFRUNLOOP_IS_SERVICING_THE_MAIN_DISPATCH_QUEUE__ + 14
12 CoreFoundation 0x0008f6bb __CFRunLoopRun + 1963
13 CoreFoundation 0x0008eac3 CFRunLoopRunSpecific + 467
14 CoreFoundation 0x0008e8db CFRunLoopRunInMode + 123
15 GraphicsServices 0x031049e2 GSEventRunModal + 192
16 GraphicsServices 0x03104809 GSEventRun + 104
17 UIKit 0x0034fd3b UIApplicationMain + 1225
18 MobileApp 0x00023bbc main + 92
19 MobileApp 0x00023b4d start + 53
)
libc++abi.dylib: terminating with uncaught exception of type NSException
(lldb)
这个插件还有其他可以打开附件(图片、excel表格、word文档)的替代品吗?
编辑: fileOpener2 对象在应用程序中也可用,因此插件似乎安装正确
【问题讨论】:
发现什么...?? phonegap 插件的文档真的很烂:'( 【参考方案1】:尝试更改插件的 ios 源 (Plugins/FileOpener2.m) 行
fileURL = [NSURL URLWithString:path];
到
fileURL = [NSURL fileURLWithPath:path];
对于 Cordova 3.4.0(及更高版本):如果您有来自 Filesystem 的条目而不是“examplePicture.jpg”,则使用 entry.toNativeURL() 作为第一个参数。
【讨论】:
帮助谢谢...现在应用程序列表出现但我仍然有错误:无法获取 URL 的数据:操作无法完成。 (可可错误 260。)。我很快就会对此进行更多测试。以上是关于适用于 iOS 的 fileOpener2 Phonegap/cordova 插件中的正确文件路径的主要内容,如果未能解决你的问题,请参考以下文章
为啥 NSRegularExpression 不包含在适用于 Mac 应用程序的foundtion.framework 中,因为它适用于 iOS?
适用于 Cordova 的 Visual Studio 工具 - 适用于 iOS 的 RemoteBuild 失败
使用适用于 iOS 10 的 UNUserNotificationCenter
在使用适用于 iOS 的 Google Maps SDK 和适用于 iOS 的 Google Places 时,我找不到在哪里可以获得 POI 结果