Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/iphone/41.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Iphone 应用程序中的pdf链接_Iphone_Pdf_Ios_Uiwebview_Plist - Fatal编程技术网

Iphone 应用程序中的pdf链接

Iphone 应用程序中的pdf链接,iphone,pdf,ios,uiwebview,plist,Iphone,Pdf,Ios,Uiwebview,Plist,我有一个iOS应用程序,可以在网络视图中打开指向网站的链接。这些链接保存在plist文件中,因此随着应用程序的发展,很容易维护它们。我接下来要做的是链接到PDF或任何文本文件格式的图片,甚至是html格式的图片,这是应用程序中保持的灵活方式。我希望在现有的应用程序结构中尽可能做到这一点。那么,是否可以创建一个链接,该链接可以作为web链接放在plist中,但可以在设备上打开一个文件(可能在webview中)?我该怎么做呢?有什么想法吗 提前感谢您的帮助 是的,我会选择UIWebView。iOS应

我有一个iOS应用程序,可以在网络视图中打开指向网站的链接。这些链接保存在plist文件中,因此随着应用程序的发展,很容易维护它们。我接下来要做的是链接到PDF或任何文本文件格式的图片,甚至是html格式的图片,这是应用程序中保持的灵活方式。我希望在现有的应用程序结构中尽可能做到这一点。那么,是否可以创建一个链接,该链接可以作为web链接放在plist中,但可以在设备上打开一个文件(可能在webview中)?我该怎么做呢?有什么想法吗


提前感谢您的帮助

是的,我会选择UIWebView。iOS应该能够自动处理某些URL处理程序,而您的应用程序可以根据需要处理其余的URL处理程序

iOS已经知道如何处理某些文件类型。例如,如果Safari或UIWebView遇到http://somesite.com/afile.pdf,它知道哪些应用程序可以处理该文件类型。另一个例子是电话号码:skype://8005555555. iOS知道如何打开Skype并将号码传递给它。iOS也知道iBooks可以处理PDf文件

为相应的文件处理程序和类型注册应用程序。然后,用户可以点击并按住该链接,查看可用于处理该链接的应用程序菜单。如果这是一个只被一个应用程序使用的链接,用户甚至不需要按住它,点击一下就足够了


至于制作指向本地文件的链接,您可以,并且可以使用C函数NSDocumentsDirectory并将其附加到url处理程序。例子:http://NSDocumentsDirectory/filename.pdf您需要在运行时创建链接。我建议对本地url使用某个前缀,例如mylocalfile:filename。然后,在加载plist的代码中,检查前缀并在必要时创建链接。您也可以只创建一次这些链接并将其存储在单独的文件中,然后加载该文件而不是原始文件

NSArray *links = nil; //I assumed your plist is an array. Change to dictionary if required
NSString *pathToStoredFile; //Get the path for the file you create with the updated links
if([[NSFileManager defaultManager] fileExistsAtPath:pathToStoredFile]) {
    links = [NSArray arrayWithContentsOfFile:pathToStoredFile];
} else {
    NSArray *tmp = [NSArray arrayWithContentsOfFile:[[NSBundle mainBundle] pathForResource:@"ListOfLinks" ofType:@"plist"]];
    if(!tmp) {
        //handle error
    }
    NSMutableArray *tmpLinks = [[NSMutableArray alloc] initWithCapacity:[tmp count]];
    for(NSString *link in tmp) {
        if([link hasPrefix:@"mylocalfile:"]) {
            link = [link substringFromIndex:12]; //12 is the length of mylocalfile:
            NSURL *url = [[NSBundle mainBundle] urlForResource:[link stringByDeletingPathExtension] withExtension:[link pathExtension]];
            [tmpLinks addObject:[url absoluteString]];
        } else [tmpLinks addObject:link];
    }
    links = [tmpLinks copy];
    [tmpLinks release];
    [links writeToFile:pathToStoredFile atomically:NO];
}

谢谢你的回答,但我真的不明白。我可以创建一个由UIWebView处理的链接来加载本地PDF吗?我该怎么做?你有我的起点或信息来源吗?