Совместное использование базы данных sqlite между собственным приложением и html5

#ios #sqlite #html #share

#iOS #sqlite #HTML #Поделиться

Вопрос:

У меня есть небольшое собственное приложение для iPad только с UIWebView. Это приложение может хранить данные в базе данных SQLite. Могу ли я прочитать эту базу данных в JS с веб-страницы внутри UIWebView? Где браузер хранит файлы базы данных для SQLite? Может ли база данных использоваться совместно между веб-страницей и собственным приложением?

Большое спасибо.

Ответ №1:

вы можете отправлять запросы в приложение из webview и получать обратный вызов, используя JS и UIWebViewDelegate или любой другой

HTML:

 <a href="http://commenter">
  

в приложении:

 - (BOOL)webView:(UIWebView *)webView shouldStartLoadWithRequest:(NSURLRequest *)request navigationType:(UIWebViewNavigationType)navigationType {
    NSString *button = [[request URL] host];

    // if clicked on commenter/partager button in article
    if ([button isEqualToString:@"commenter"]) {
  

Комментарии:

1. Спасибо, я знаю этот способ взаимодействия между собственным приложением и веб-страницей. Но возникает вопрос: «Как я могу использовать одну и ту же базу данных SQLite из собственного приложения и с веб-страницы одновременно?»

Ответ №2:

Вы не можете использовать базу данных или любой другой ресурс внутри приложения ios вне его.

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

если вы знаете некоторые распространенные языки сценариев, такие как php или классический asp, вы можете сделать это легко.

например

создайте строку с помощью html-тегов, css и скрипта

затем загрузите эту строку в webview

вы можете скрыть некоторые данные в скрытом поле и использовать их, когда вам это нужно. Если в данный момент ему необходимо получить доступ к некоторым большим данным sqlite, просто сделайте запрос url, перехватите запрос url в objective c и снова создайте и загрузите строку.