В ходе разработки может быть проще хранить базу данных в общей папке.
Или вы можете увидеть это сообщение:
Как получить доступ к папке данных / данных на Android-устройстве?
Существует четыре шага к созданию приложения, которое может действовать как веб-браузер по умолчанию. Первые три шага позволяют Вашему приложению действовать как обработчик ролей для соответствующих схем 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.
Если Вы просто хотите изменить вспомогательное приложение по умолчанию для http (s), можно сделать так в предпочтениях Safari. Там you’ll находят выпадающее, которое позволит Вам выбрать все зарегистрированные приложения обработчика для http. Чтобы автоматически установить приложение само как браузер по умолчанию, см. предыдущие инструкции.