为PhoneGap应用程序嵌入PDF查看器

时间:2011-08-08 08:17:56

标签: android ios cordova sencha-touch

如何为手机屏幕应用程序嵌入PDF查看器?我决定使用PhoneGap + Sencha Touch为iOS和Android开发应用程序。

3 个答案:

答案 0 :(得分:3)

我只有iOS手机空间体验。对我有用的解决方案是制作一个插件,弹出一个使用iOS原生pdf查看器的原生webview。实现这一目标的方法是按照本网站上的说明进行操作。

http://spin.atomicobject.com/2010/12/07/updating-phonegap-s-childbrowser-plugin-to-handle-local-files/

此链接修改现有插件“子浏览器”以使用本机webview显示pdf。可以找到原始的chilbrowser插件here

为了让您更好地了解它会是什么样子,这是我在我的sencha应用程序中添加的特定javascript调用。

 PhoneGap.exec("ChildBrowserCommand.showFilePage", GlobalVar.localRoot + "/" + record.get("FilePath"));

这是在sencha内的buttonTap的处理程序内,按下按钮然后将调用目标C方法“showFilePage”。该参数是插件将使用的文件路径。

这是Objective C部分(同样,您应该按照链接获取完整说明)

    - (void) showFilePage:(NSMutableArray*)arguments withDict:(NSMutableDictionary*)options // args: url
{   
    NSLog(@"showFilePage entered: ");
    if(childBrowser == NULL)
    {
        childBrowser = [[ ChildBrowserViewController alloc ] initWithScale:FALSE ];
        childBrowser.delegate = self;
    }




    PhoneGapViewController* cont = (PhoneGapViewController*)[ super appViewController ];
    childBrowser.supportedOrientations = cont.supportedOrientations;
    [ cont presentModalViewController:childBrowser animated:YES ];

    NSString *path = (NSString*) [arguments objectAtIndex:0];
    NSLog(@"Our argument 0 is: %@",[arguments objectAtIndex:0]);

    NSLog(@"The url is: %@",path);
    [childBrowser loadFileURL:path];

}

答案 1 :(得分:2)

没有太多关于混合PhoneGap和ObjC的文档,但here is some example cod e允许您使用ObjectiveC-Application嵌入PhoneGap。对于PDF查看器,您可以使用Apple的QuickLook或UIWebView等基本版本,也可以使用PSPDFKit等更高级的版本。

对于Android,您可以simply search for an Intent that is capable of displaying pdf(如Adobe的Android官方Reader)或自行集成完整的PDF查看器。 There's an open source project for that,但看起来不太完整。或者查看apvdroidreader,即GPLv3。

答案 2 :(得分:0)

您只需使用HTML5对象标记,即可添加,swf,pdf等。