首页 文章

如何将服务器端生成的新页面加载到PhoneGap或Cordova应用程序中?

提问于
浏览
0

我正在尝试找出最简单,最快捷的技术,使我们公司的网站适应可以从应用商店下载的应用 . PhoneGap / Cordova看起来很顺利 . 使用InAppBrowser插件看起来是一条显而易见的路线,但我们需要通过Cordova插件访问一些手机API,并且似乎无法在InAppBrowser(Webview?)窗口中访问它们的数据 .

作为替代方案,我想知道为什么我不能直接在我的PhoneGap页面(实际上是单页面应用程序)中替换HTML内容,并从我们的服务器加载新的HTML页面内容?我们在服务器端使用Laravel模板,因此在发送到客户端之前,已经有一个页面包装器将Laravel注入特定于页面的内容(在服务器上) . 我可以将页面包装器HTML移动到前端(进入编译到我的PhoneGap应用程序的SPA中),所有页面都需要所有JS和CSS,然后直接将新页面内容加载到DOM中(例如在页面中) BODY),任何JS都可以通过Cordova插件访问手机API .

这是可行的,还是我错过了什么? (任何陷阱?)

谢谢 .

1 回答

  • 1

    你可以使用这样的东西

    in your serveur create page home.php like this :

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

相关问题