Открытие в приложении, получение UIApplicationLaunchOptionsURLKey из launchOptions - PullRequest
0 голосов
/ 17 июня 2011

Я пытаюсь открыть .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;
}

В другом классе, где мой appDelegate (содержащий это didFinishLaunchingWithOptions), у меня есть строка:

appDel = [[UIApplication sharedApplication]delegate];
[theLabel setText:[NSString stringWithFormat:@"%@", appDel.thePDFurl]];

Так или иначе, theLabel всегда показывает (ноль). Чего мне не хватает?

Ответы [ 4 ]

8 голосов
/ 17 июня 2011

Возможно, я неправильно понимаю, что вы пытаетесь сделать. Если так, игнорируйте.

Если вы хотите, чтобы пользователь мог «открыть с помощью ...» PDF-файл с помощью вашего приложения, вы можете реализовать

- (BOOL)application:(UIApplication *)application openURL:(NSURL *)url sourceApplication:(NSString *)sourceApplication annotation:(id)annotation

* 1006 Е.Г. *

- (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;
}

Я почти уверен, что это работает как для запуска приложения, так и для его вызова (то есть, если оно уже в фоновом режиме).

2 голосов
/ 17 июня 2011

Вы можете сохранить переменную pdfurl, а также получить абсолютное строковое значение из NSURL, используя метод absoluteString .

[theLabel setText:[NSString stringWithFormat:@"%@", [appDel.thePDFurl absoluteString]]]
0 голосов
/ 01 сентября 2011

Когда вы звоните в пределах application:didFinishLaunchingWithOptions:,

self.window.rootViewController = self.viewController;
[self.window makeKeyAndVisible];

[viewController view] был вызван неявно, и appDel.thePDFurl еще не было назначено.

0 голосов
/ 20 июня 2011

Полагаю, с тобой все в порядке. Так получилось, что представление было загружено до того, как метод applicationDidFinishLaunching был завершен. Спасибо всем ...

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...