Открытие URL при запуске - PullRequest
3 голосов
/ 13 января 2010

Какой метод я должен реализовать в делегате моего приложения какао, чтобы при запуске он открывал URL? (http / https, в данном случае) Я уже реализовал схемы URL, мне просто нужно знать, как заставить мое приложение открываться по URL-уведомлению.

Обновление: Извините, мне не очень ясно. Мое приложение - это браузер, который поддерживает https / http URL, но может открывать их только тогда, когда он уже запущен. Что я могу сделать, чтобы реализовать поддержку открытых URL-адресов в моем приложении при запуске?

Ответы [ 4 ]

8 голосов
/ 13 января 2010

Когда приложение завершает запуск в OS X, NSApp (глобальный экземпляр NSApplication для программы) отправляет своему делегату сообщение applicationDidFinishLaunching: (через систему уведомлений). Вы можете реализовать этот метод в своем делегате, чтобы обработать уведомление и открыть окно браузера в ответ, используя NSWorkspace. Будет работать что-то вроде следующего:

// Your NSApp delegate
- (void)applicationDidFinishLaunching:(NSNotification *)aNotification
{
    [[NSWorkspace sharedWorkspace] openURL:[NSURL URLWithString:@"http://www.example.com/"]];
}
3 голосов
/ 17 января 2010

Я уже реализовал событие getURL, так что одного этого недостаточно, чтобы приложение открывало URL при запуске. Хитрость заключается в том, что AppleEvent должен быть установлен в applicationWillFinishLaunching: не applicationDidFinishLaunching :. В противном случае событие вообще не отправляется, потому что приложение не зарегистрировало его вовремя.

2 голосов
/ 16 января 2010

Это не метод делегата. Вам нужно реализовать обработчик событий Apple для события getURL.

Как повезет, Apple использует для демонстрации реализации обработчика событий Apple .

0 голосов
/ 28 апреля 2011

Чтобы реализовать обработчик протокола, который вы можете выбрать (например, в настройках Safari) в качестве «браузера по умолчанию» и который будет запускаться в ответ на HTTP / HTTPS, вам нужно сделать несколько вещей.

  1. Добавьте файлы .scriptSuite и .scriptTerminology к ресурсам вашего проекта.Они сообщат Mac OS X, что вы будете обрабатывать команду GetURL.

  2. Добавьте ключ CFBundleURLTypes в ваш файл Info.plist со списком «схем URL», которые будет обрабатывать ваше приложение.

  3. Также в Info.plist добавьте ключ NSAppleScriptEnabled со значением YES.

  4. Добавьте новый класс в ваше приложение в качестве подклассаNSScriptCommand и реализуйте - (id) селектор executeDefaultImplementation.В этой функции вы найдете URL, по которому щелкнули, в [self directParameter].Передайте это обработчику URL вашего приложения!

Для получения полной информации ознакомьтесь со статьей: http://www.xmldatabases.org/WK/blog/1154_Handling_URL_schemes_in_Cocoa.item

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