如何从钛移动项目资源文件夹下的iOS钛模块访问pdf文件?

如何从钛移动项目资源文件夹下的iOS钛模块访问pdf文件?,ios,path,titanium,Ios,Path,Titanium,我正在创建一个钛合金移动应用程序,其中包含用于编辑PDF的iOS模块。我在titanium project(titanium Studio)资源目录中有一个pdf文件。如何从iOS模块访问PDF文件 我使用Titanium.Filesystem.getResourcesDirectory()+'filename.pdf'获取文件路径 并将路径作为方法参数传递给iOS模块 如何在iOS模块中获取文件???如果文件位于资源目录中,则只需将名称传递给模块,因为这意味着PDF位于主应用程序资产包中,请使

我正在创建一个钛合金移动应用程序,其中包含用于编辑PDF的iOS模块。我在titanium project(titanium Studio)资源目录中有一个pdf文件。如何从iOS模块访问PDF文件

我使用
Titanium.Filesystem.getResourcesDirectory()+'filename.pdf'获取文件路径

并将路径作为方法参数传递给iOS模块


如何在iOS模块中获取文件???

如果文件位于资源目录中,则只需将名称传递给模块,因为这意味着PDF位于主应用程序资产包中,请使用以下代码获取该文件的路径:

// The application assets can be accessed by building a path from the mainBundle of the application.
NSString *filePath = [[[NSBundle mainBundle] resourcePath] stringByAppendingPathComponent:@"filename.pdf"];

作为附录,如果您发现自己试图在iOS中传递模块的完整路径,您需要:

var file = Titanium.Filesystem.getResourcesDirectory()+'filename.pdf';
var actualPathToPassToModule = file.resolve();

您可以使用TiUtils的方法“toUrl:proxy:”。文档中的示例如下,但它也适用于从JS land接收的参数(只需将“path”字符串替换为您自己的):

“self”可以是您的模块,因为TiModules本身就是代理(换句话说,将其保留为self对您来说可能没问题)

想要一个更完整的例子吗?看看我刚才写的AirPrint模块。“print:(id)args”方法接收一个{url:“whatever.pdf”},将其转换为一个url,并在UI线程上对其执行一些有趣的操作

- (void)print:(id)args
{
    ENSURE_UI_THREAD(print,args);
    ENSURE_SINGLE_ARG(args,NSDictionary);

    NSURL* url = [TiUtils toURL:[args objectForKey:@"url"] proxy:self];
    if (url==nil) {
        NSLog(@"[ERROR] Print called without passing in a url property!");
        return;
    }

我想你回答了处理文件的所有方法,除了他要求的方法。:)不过还是有用的信息。是的,我错过了那个。也许它会帮助别人。我会编辑,但你有一个很好的答案!非常感谢@Josiah。但是要获得file.resolve(),我们需要使用->var file=Ti.Filesystem.getFile(tianium.Filesystem.getResourcesDirectory()+'document.pdf')+我不知道
[TiUtils toul:arg]
或TiModule自交。很不错的!
- (void)print:(id)args
{
    ENSURE_UI_THREAD(print,args);
    ENSURE_SINGLE_ARG(args,NSDictionary);

    NSURL* url = [TiUtils toURL:[args objectForKey:@"url"] proxy:self];
    if (url==nil) {
        NSLog(@"[ERROR] Print called without passing in a url property!");
        return;
    }