繁体   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