在app中打开,从launchOptions获取UIApplicationLaunchOptionsURLKey

Joe*_*jah 0 iphone objective-c ios4 ios

我正在尝试在我的应用中打开.pdf文件.我修改了Info.plist,以便在我的应用程序中打开.pdf.

我使用以下代码:

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
    self.window.rootViewController = self.viewController;
    [self.window makeKeyAndVisible];
    thePDFurl = (NSURL *)[launchOptions valueForKey:UIApplicationLaunchOptionsURLKey];
    return YES;
}
Run Code Online (Sandbox Code Playgroud)

在另一个类中,我的appDelegate(包含那个didFinishLaunchingWithOptions),我有了这条线:

appDel = [[UIApplication sharedApplication]delegate];
[theLabel setText:[NSString stringWithFormat:@"%@", appDel.thePDFurl]];
Run Code Online (Sandbox Code Playgroud)

不知何故,theLabel总是显示(null).我错过了什么?

Kal*_*lle 8

我可能误解了你想要做的事情.如果是这样,请忽略.

如果您希望用户能够使用您的应用程序"打开..."PDF,您可以实施

- (BOOL)application:(UIApplication *)application openURL:(NSURL *)url sourceApplication:(NSString *)sourceApplication annotation:(id)annotation
Run Code Online (Sandbox Code Playgroud)

例如

- (BOOL)application:(UIApplication *)application openURL:(NSURL *)url sourceApplication:(NSString *)sourceApplication annotation:(id)annotation
{
    NSLog(@"Open URL:\t%@\n"
     "From source:\t%@\n"
     "With annotation:%@",
     url, sourceApplication, annotation);

    NSString *filepath = [url path];
    //...
    return YES;
}
Run Code Online (Sandbox Code Playgroud)

我很确定这适用于启动应用程序并调用它(即它是否已经在后台).

  • 嗨,我可以使用"打开方式......",我可以使用我的应用程序打开PDF.发生的问题是,didFinishLaunching的文件路径对我来说似乎是空的.didFinishLaunchingWithOptions确实被调用,虽然它的选项是(null)... (2认同)