Как загрузить новые страницы, созданные на стороне сервера, в приложение PhoneGap или Cordova? - PullRequest
0 голосов
/ 30 октября 2018

Я пытаюсь найти самый простой и быстрый способ адаптации веб-сайта нашей компании к приложению, которое можно загрузить из магазинов приложений. PhoneGap / Cordova выглядит так, как надо. Использование плагина InAppBrowser выглядит очевидным путем, но нам потребуется доступ к некоторым телефонным API через плагины Cordova, и, похоже, нет способа получить доступ к данным из них в окне InAppBrowser (Webview?).

В качестве альтернативы мне интересно, почему я не могу просто заменить контент HTML прямо на моей странице PhoneGap (фактически одностраничное приложение) новым контентом HTML-страницы, загруженным с нашего сервера? Мы используем серверные шаблоны Laravel, поэтому уже существует оболочка для страниц, в которую Laravel вставляет контент, специфичный для страницы (на сервере), перед отправкой клиенту. Я мог бы просто переместить HTML-оболочку страницы во внешний интерфейс (в SPA, скомпилированный в мое приложение PhoneGap) вместе со всеми JS и CSS, необходимыми для всех страниц, а затем просто загрузить новое содержимое страницы в DOM (например, на страницу). BODY), и любой JS будет иметь доступ к телефонным API через плагины Cordova.

Это возможно, или я что-то упустил? (есть ошибки?)

Спасибо.

1 Ответ

0 голосов
/ 30 октября 2018

Вы можете использовать что-то вроде этого

на вашем сервере создайте страницу home.php, например:

<?php
header('Access-Control-Allow-Origin: *');
header("content-type: text/javascript");

          if(isset($_POST['home']))
           {
            $content_html = '<head><title> Test </title></head><body><span>working</span></body><script>declare  all necessary script hear</script>';
                  echo json_encode($content_html);  
            }
?>

in cordova index.html

<html id="new_content">


</html>
 <script type="text/javascript" src="cordova.js"></script>
 <script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jquery/3.1.0/jquery.min.js"></script>
<script>
       $('#new_content').html("<center><span>Loading ...</span></center>");
                  $.ajax({
                         type: "POST",
                         url: "http:/your_serveur/home.php",
                         data: {"home":"home"},
                         cache: false,
                         async:false,
                         success: function(data){   
                           var data = JSON.parse(data); 
                            $("#new_content").html(data);
                              },
                        });
</script>
...