Javascript 如何将服务器端生成的新页面加载到PhoneGap或Cordova应用程序中?
我正试图找出最简单、最快捷的技术,使我们公司的网站适应可以从应用商店下载的应用程序。PhoneGap/Cordova看起来很有前途。使用InAppBrowser插件看起来是一条显而易见的途径,但我们需要通过Cordova插件访问一些手机API,并且似乎无法在InAppBrowser(Webview?)窗口中访问这些API中的数据 作为替代方案,我想知道为什么我不能直接用从服务器加载的新HTML页面内容替换PhoneGap页面(实际上是一个单页面应用程序)中的HTML内容?我们在服务器端使用Laravel模板,因此已经有了一个页面包装器,Laravel在发送到客户端之前将页面特定的内容(在服务器上)注入其中。我可以将页面包装器HTML移动到前端(进入我的PhoneGap应用程序中编译的SPA),完成所有页面所需的所有JS和CSS,然后将新页面内容实时加载到DOM中(例如页面主体中),任何JS都可以通过Cordova插件访问电话API 这是可行的,还是我遗漏了什么?(有什么问题吗?)Javascript 如何将服务器端生成的新页面加载到PhoneGap或Cordova应用程序中?,javascript,laravel,cordova,laravel-5,phonegap,Javascript,Laravel,Cordova,Laravel 5,Phonegap,我正试图找出最简单、最快捷的技术,使我们公司的网站适应可以从应用商店下载的应用程序。PhoneGap/Cordova看起来很有前途。使用InAppBrowser插件看起来是一条显而易见的途径,但我们需要通过Cordova插件访问一些手机API,并且似乎无法在InAppBrowser(Webview?)窗口中访问这些API中的数据 作为替代方案,我想知道为什么我不能直接用从服务器加载的新HTML页面内容替换PhoneGap页面(实际上是一个单页面应用程序)中的HTML内容?我们在服务器端使用Lar
谢谢。你可以用这样的东西 在您的服务器中创建如下主页:
<?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>
$(“#新内容”).html(“加载…”);
$.ajax({
类型:“POST”,
url:“http://your_serveur/home.php”,
数据:{“主页”:“主页”},
cache:false,
async:false,
成功:函数(数据){
var data=JSON.parse(数据);
$(“#新内容”).html(数据);
},
});
谢谢。我想它必须以JSON编码的方式发送?这是唯一的格式吗?好吧,如果是的话,我只是想确定一下。是访问控制头,因为响应是JSON格式的?另外,PHP端定义的Javascript(“在这里声明所有必要的脚本”)是否可以移动到cordovaindex.html中的标记中?谢谢,它是通过JSON编码发送的。它快速且安全,访问控制允许源代码。如果您从http serveur发送请求,是的,您可以在cordovaindex.html中声明所有脚本,而不是在PHP端。我在我的应用程序中使用了类似的示例,它的工作非常完美,u欢迎
非常感谢。我想这在HTTPS上有效?还有,饼干怎么样?它们会起作用吗?我不想让我的用户在每次新页面查看时都注销:)谢谢使用HTTPS和HTTP,是的,你可以在javascript中使用cookies,在没有登录的情况下调用所有页面,uwelcome