簡體   English   中英

如何將服務器端生成的新頁面加載到PhoneGap或Cordova應用程序中?

[英]How to load new pages generated server-side into a PhoneGap or Cordova app?

我正在嘗試找出最簡單,最快的技術來使我們公司的網站適應可以從應用程序商店下載的應用程序。 PhoneGap / Cordova看起來很不錯。 使用InAppBrowser插件似乎是一條顯而易見的路線,但我們將需要通過Cordova插件訪問某些電話API,並且似乎無法在InAppBrowser(Webview?)窗口中從其中訪問數據。

作為替代方案,我想知道為什么不能簡單地將我的PhoneGap頁面(實際上是單個頁面應用程序)中的HTML內容替換為從服務器加載的新HTML頁面內容嗎? 我們在服務器端使用Laravel模板,因此已經有一個頁面包裝器,Laravel在將頁面特定的內容(在服務器上)注入到頁面包裝器中之后再發送給客戶端。 我可以將頁面包裝HTML移至前端(移入已編譯到我的PhoneGap應用程序的SPA中),並包含所有頁面所需的所有JS和CSS,然后將新頁面內容實時加載到DOM中(例如,在頁面中BODY),並且任何JS都可以通過Cordova插件訪問電話API。

這可行嗎,或者我缺少什么? (有陷阱嗎?)

謝謝。

你可以用這樣的東西

在您的serveur創建頁面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);  
            }
?>

在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>

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM