【发布时间】:2016-11-26 12:10:21
【问题描述】:
我正在将用户发送到 Microsoft Word 应用程序以编辑文档。为此,我使用了我在info.plist 中作为“ms-word”列入白名单的 URL 方案。我读到的所有关于此的问题和答案都是outdated/involve 我尝试过多次的解决方案。
在您说“只使用UIDocumentInteractionController”之前,该文档控制器不允许编辑同一个文件,并且在查看文档后它无法将用户发送回原始应用程序。
这是我在 Objective-C 中尝试过的内容
NSURL *ourURL = [NSURL URLWithString:[@"ms-word:ofe|u|https://www.acm.org/sigs/publications/pubform.doc" stringByAddingPercentEscapesUsingEncoding:(NSUTF8StringEncoding)]];
if([[UIApplication sharedApplication] canOpenURL:ourURL] ) {
[[UIApplication sharedApplication] openURL:ourURL];
}
我也尝试过这种变体,例如删除编码并将管道手动编码为 %7C,因为这是编码后的最终结果。我在here 看到的教程中使用了这种变体。
这是另一个tutorial,我查看了它对我不起作用。
我还尝试了通过按文件类型搜索 .doc/.docx 在 google 上找到的其他面向公众的 word 文档,但没有任何效果。
这是我在 Swift 中尝试过的内容
let ourURL = NSURL(string: ("ms-word:ofe|u|http://www.fcu.edu.tw/wSite/public/Attachment/f1355389313906.doc").stringByAddingPercentEncodingWithAllowedCharacters(NSCharacterSet.URLQueryAllowedCharacterSet())!)!
print(ourURL)
let ourApplication:UIApplication = UIApplication.sharedApplication()
if(ourApplication.canOpenURL(ourURL)) {
ourApplication.openURL(ourURL)
}
我再次尝试了多种变体、不同的编码、NSUTF8, stringByAddingPercentEscapesUsingAllowedCharacters(NSCharacters.URLQueryAllowedCharacterSet()),以及不同的 word 文档 url...
我也尝试过下载文档的NSData 并将其本地写入手机中的文件目录,然后打开该文件,但URL 方案不支持本地目录(UIDocumentInteractionController 确实支持这个,但同样,您不能编辑该副本,也不能将用户返回到他们的应用程序)。
有 little documentation 关于 ms word 的 url 方案,我已经对该主题进行了大量研究,似乎还有很多人仍然遇到同样的问题,并且已经去了 Microsoft forums 和其他帮助论坛没有解决方案,因为这些论坛上的人都没有这个特定领域的经验。
每次尝试都会导致:
1) Word 成功启动,但随后我收到此错误:“无法连接到URL,请使用有效的URL”
2) Word 成功启动,但随后我收到相同的错误,然后在消除错误后我看到类似“word 无法在 url 打开文件”
【问题讨论】:
标签: ios objective-c swift nsurl url-scheme