我一直在读书,但我还没有得到解决方案。我正在使用FileTransfer成功下载pdf文件。它位于名为Documents的文件夹中,位置如下所示: / Users / myusername / Library / Application Support / iPhone Simulator / 5.1 / Applications / C62E5802-56A8-48BF-B57C-695801F3C8D6 / HelloWorld.app / Documents / 11.pdf
我正在尝试使用ChildBrowser打开它,到目前为止我没有成功。
要打开的代码是:
cordova.exec("ChildBrowserCommand.showWebPage", path );
当路径是外部的(例如http://www.google.com/)时,它运作良好(域名已列入白名单)。
我尝试过所有这些路径但没有成功:
file:/// Users / myusername / Library / Application Support / iPhone Simulator / 5.1 / Applications / C62E5802-56A8-48BF-B57C-695801F3C8D6 / HelloWorld.app / Documents / 11.pdf
file://// Users / myusername / Library / Application Support / iPhone Simulator / 5.1 / Applications / C62E5802-56A8-48BF-B57C-695801F3C8D6 / HelloWorld.app / www / Documents / 11.pdf
文件:///Documents/11.pdf
我需要做什么才能达到目的?查看上面的应用程序位置,我找不到www文件夹(我假设它已被打包)
这一切都在模拟器,cordova 2.1.0和最新的ChildBrowser中。
答案 0 :(得分:3)
我在这里找到了另一个回答我的问题。 link
要提交的文件应该是这样的:
file:///Users/{username}/Library/Application%20Support/iPhone%20Simulator/5.0/Applications/F815A351-44EC-46E8-AD00-A7D775FF9ECC/Documents/11.pdf
提供的文件已下载到应用程序的Documents文件夹中,而不是放在www文件夹中。 得到这样的网址:
fp = entry.fullPath;
urld = "file://" + fp;
//open the file in ChildBrowser
cordova.exec("ChildBrowserCommand.showWebPage", encodeURI(urld) );
答案 1 :(得分:3)
我在ChildBrowser中添加了https://github.com/vfr/Reader PDF阅读器。 它非常棒!
当前组件版本:Cordova 2.2.0的子浏览器
编辑ChildBrowserCommand.h:
#import <Cordova/CDVPlugin.h>
#import "ChildBrowserViewController.h"
#import "ReaderDemoController.h"
#import "ReaderViewController.h"
@interface ChildBrowserCommand : CDVPlugin <ChildBrowserDelegate, ReaderViewControllerDelegate>{}
@property (nonatomic, strong) ChildBrowserViewController* childBrowser;
@property (nonatomic, strong) ReaderDemoController* reader;
- (void)showWebPage:(NSMutableArray*)arguments withDict:(NSMutableDictionary*)options;
- (void)onChildLocationChange:(NSString*)newLoc;
@end
在.M文件中
1)@synthesize reader;
2)
- (void)showWebPage:(NSMutableArray*)arguments withDict:(NSMutableDictionary*)options
{
NSString* url = (NSString*)[arguments objectAtIndex:0];
if([url hasSuffix:@".pdf"])
{
NSString *phrase = nil; // Document password (for unlocking most encrypted PDF files)
ReaderDocument *document = [ReaderDocument withDocumentFilePath:url password:phrase];
ReaderViewController *readerViewController = [[ReaderViewController alloc] initWithReaderDocument:document];'
readerViewController.delegate = self; // Set the ReaderViewController delegate to self
readerViewController.modalTransitionStyle = UIModalTransitionStyleCrossDissolve;
readerViewController.modalPresentationStyle = UIModalPresentationFullScreen;
[self.viewController presentModalViewController:readerViewController animated:YES];
}
else
{
if (self.childBrowser == nil) {
#if __has_feature(objc_arc)
self.childBrowser = [[ChildBrowserViewController alloc] initWithScale:NO];
NSLog(@"HAS ARC");
#else
self.childBrowser = [[[ChildBrowserViewController alloc] initWithScale:NO] autorelease];
NSLog(@"NO ARC");
#endif
self.childBrowser.delegate = self;
self.childBrowser.orientationDelegate = self.viewController;
}
[self.viewController presentModalViewController:childBrowser animated:YES];
[self.childBrowser loadURL:url];
}
}
3)
-(void)dismissReaderViewController:(ReaderViewController *)viewController{
NSLog(@"The delegate to dismiss pdf reader was called");
[self.viewController dismissModalViewControllerAnimated:YES];}
4)将所有内容从Reader复制到我们的项目中,添加所需的所有框架
享受。不要忘记为阅读器打开ARC
答案 2 :(得分:2)
childbrowser = ChildBrowser.install();
console.log(location.href);
var strPath = window.location.href;
var path = strPath.substr(0,strPath.lastIndexOf('/')) + "/../../Documents/age.pdf";
console.log(encodeURI(path));
childbrowser.showWebPage(encodeURI(path));
这里代码,打开pdf文件。文件位于本地文件夹Documents
中这是一个如何在Phonegap中为我工作的例子
url = "pdf/test.pdf";
function openChildBrowser(url)
{
try {
var strPath = window.location.href;
var path = strPath.substr(0,strPath.lastIndexOf('www')) + "www/"+ url;
path = path.replace('file:///', '/');
window.plugins.childBrowser.showWebPage(encodeURI(path));
}
catch (err)
{
console.log(err);
}
}