Как Вы устанавливаете свое приложение Какао как веб-браузер по умолчанию?

В ходе разработки может быть проще хранить базу данных в общей папке.

Или вы можете увидеть это сообщение:

Как получить доступ к папке данных / данных на Android-устройстве?

31
задан Bill the Lizard 10 November 2008 в 15:06
поделиться

2 ответа

Существует четыре шага к созданию приложения, которое может действовать как веб-браузер по умолчанию. Первые три шага позволяют Вашему приложению действовать как обработчик ролей для соответствующих схем URL (HTTP и HTTPS), и заключительный шаг делает это обработчиком ролей по умолчанию для тех схем.

1) Добавляют схемы URL, которые Ваше приложение может обработать в info.plist файл

Вашего приложения Для добавления поддержки http://, и https:// необходимо было бы добавить следующее к info.plist файлу приложения. Это говорит ОС, что Ваше приложение способно к обработке URL HTTP и HTTP.

<key>CFBundleURLTypes</key>
<array>
    <dict>
        <key>CFBundleURLName</key>
        <string>http URL</string>
        <key>CFBundleURLSchemes</key>
        <array>
            <string>http</string>
        </array>
    </dict>
    <dict>
        <key>CFBundleURLName</key>
        <string>Secure http URL</string>
        <key>CFBundleURLSchemes</key>
        <array>
            <string>https</string>
        </array>
    </dict>
</array>

2) Запись метод обработчиков URL

Этот метод назовет ОС, когда это захочет использовать Ваше приложение для открытия URL. Это не имеет значения, к какому объекту Вы добавляете этот метод, это будет явно передано менеджеру событий на следующем шаге. Метод обработчиков URL должен выглядеть примерно так:

- (void)getUrl:(NSAppleEventDescriptor *)event 
    withReplyEvent:(NSAppleEventDescriptor *)replyEvent
{
  // Get the URL
  NSString *urlStr = [[event paramDescriptorForKeyword:keyDirectObject] 
    stringValue];

  //TODO: Your custom URL handling code here
}

3) Регистр метод обработчиков URL

Затем, говорит менеджера событий, которые возражают и метод для вызова, когда он хочет использовать приложение для загрузки URL. В коде здесь я передаюсь self как обработчик событий, предполагая, что мы звоним setEventHandler от того же объекта, который определяет getUrl:withReplyEvent: метод.

необходимо добавить этот код где-нибудь в коде инициализации приложения.

NSAppleEventManager *em = [NSAppleEventManager sharedAppleEventManager];
[em 
  setEventHandler:self 
  andSelector:@selector(getUrl:withReplyEvent:) 
  forEventClass:kInternetEventClass 
  andEventID:kAEGetURL];

Некоторые приложения, включая ранние версии Adobe AIR, используют альтернативный WWW!/OURL AppleEvent, чтобы запросить, чтобы приложение открыло URL, так чтобы быть совместимым с теми приложениями, необходимо также добавить следующее:

[em
  setEventHandler:self 
  andSelector:@selector(getUrl:withReplyEvent:) 
  forEventClass:'WWW!' 
  andEventID:'OURL'];

4) Набор Ваше приложение как браузер по умолчанию

Все мы сделали, насколько сказали ОС, что Ваше приложение браузер , теперь мы должны сделать его браузер по умолчанию .

Мы должны использовать API Launch Services, чтобы сделать это. В этом случае мы устанавливаем наше приложение, чтобы быть обработчиком ролей по умолчанию для ссылок HTTPS и HTTP:

CFStringRef bundleID = (CFStringRef)[[NSBundle mainBundle] bundleIdentifier];
OSStatus httpResult = LSSetDefaultHandlerForURLScheme(CFSTR("http"), bundleID);
OSStatus httpsResult = LSSetDefaultHandlerForURLScheme(CFSTR("https"), bundleID);
//TODO: Check httpResult and httpsResult for errors

(Вероятно, лучше спросить разрешение пользователя прежде, чем изменить их браузер по умолчанию.)

схемы Custom URL

стоит отметить, что можно также использовать эти те же шаги для обработки собственных схем URL. При создании пользовательской схемы URL, это - хорошая идея основывать его на идентификаторе пакета приложения для предотвращения столкновений с другими приложениями. Таким образом, если Ваш идентификатор пакета com.example.MyApp, необходимо рассмотреть использование x-com-example-myapp:// URL.

73
ответ дан 27 November 2019 в 21:51
поделиться

Если Вы просто хотите изменить вспомогательное приложение по умолчанию для http (s), можно сделать так в предпочтениях Safari. Там you’ll находят выпадающее, которое позволит Вам выбрать все зарегистрированные приложения обработчика для http. Чтобы автоматически установить приложение само как браузер по умолчанию, см. предыдущие инструкции.

2
ответ дан 27 November 2019 в 21:51
поделиться