我正在尝试使用varius事件,但是我无法在init中加载第一页json。
我有3个文件html(索引+其他+ js)和1个WS index.html是phonegap标准文件,有4个链接和其他文件是这样的: 我正在使用phonegap 2.9.0,jquery-1.11.0和jquery.mobile-1.4.2 html文件是:
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<meta name="format-detection" content="telephone=no" />
<meta name="viewport" content="user-scalable=no, initial-scale=1, maximum-scale=1, minimum-scale=1, width=device-width, height=device-height, target-densitydpi=device-dpi" />
<link rel="stylesheet" type="text/css" href="css/index.css" />
<link rel="stylesheet" href="css/jquery.mobile-1.4.2.min.css" />
</head>
<body >
<div data-role="page" id="tintos" data-add-back-btn="true" data-cache="false">
<div data-role="content">
<ul id="vino-list" data-role="listview" data-theme="a" data-divider-theme="e" data-filter="true" data-filter-placeholder="Buscar Vinos..." data-inset="true" class="tinto">
</ul>
</div>
</div>
<script src="cordova.js"></script>
<script src="js/jquery-1.11.0.min.js"></script>
<script src="js/jquery.mobile-1.4.2.min.js"></script>
<script src="js/list.js"> </script>
</body>
</html>
js文件包含ajax JSON:
var serviceURL = "http://www.domain.com/ws/prueba.php";
$.support.cors = true;
$.mobile.allowCrossDomainPages = true;
var employees;
$('#tintos').bind('pageinit', function(event) {
getTintoList();
});
$('#tintos').bind('mobileinit', function(event) {
getTintoList();
});
$('#tintos').bind('deviceready', function(event) {
getTintoList();
});
$.getJSON(serviceURL, {
success:function(data){
alert("Working");
data = evalJSON(data);
}, error: function() { alert("Error"); }
});
function getTintoList() {
alert('READY!');
var output = $('#vino-list').text('Loading data...');
var vino=locationVars('TIPO');
$.ajax({
url: serviceURL,
dataType: 'jsonp',
data: data
jsonp: 'jsoncallback',
timeout: 25000,
success: function(data, status){
output.empty();
$.each(data, function(i,item){
var landmark = '<li><a href="detalleVino.html?ID=' + item.id_vino + '" data-id=' + item.id_vino + ' data-role="button" data-theme="b"><h3>'
+ item.nombre + '</h3>'
+ '<h3 align="right">'+item.precio + '</h3>'
+ '<p>'+item.denominacion + '</p></a></li>';
output.append(landmark);
alert("Cargado");
$('#vino-list').listview('refresh');
});
},
error: function(){
output.text('There was an error loading the data.');
navigator.notification.confirm(
'Something went wrong. Would you like to retry?',
yourCallback,
'Error',
'No,Yes'
);
}
});
}
WS的代码是:
<?php
include($DIRCONF . 'JSON.php');
$tipo=$_GET['TIPO'];
$ida='OK';
$json = new Services_JSON;
//Las varibales de conexion y bbdd las recuperamos de las constantes de config.ini.php
$conexion = mysql_connect(SERVIDOR_MYSQL, USUARIO_MYSQL, PASSWORD_MYSQL);
mysql_select_db(BASE_DATOS, $conexion);
//Obtenemos lista de amigos con amistad confirmada
$que = "SELECT id_vino,nombre,precio,nombre as denominacion FROM `VINOS` WHERE `VINO`.estado=1 AND `VINO`.codRestaurante=1 AND `VINO`.descripcion='$tipo'";
$res = mysql_query($que, $conexion) or die(mysql_error());
while ($row = mysql_fetch_assoc($res)) {
$data[] = $row;
}
//Cerramos la conexion a la base de datos
mysql_close($conexion);
//Devolvemos el valor
//header("Content-type: application/json");
echo $_GET['jsoncallback'] . '(' . json_encode($data) . ');';
?>
WS已经使用RESTClient进行了测试,并且在json调用show:
时是正确的“jsonCallBack的数量”+([{“id_vino”:“2”,“nombre”:“Martinez la cuesta”,“precio”:“22”,“denominacion”:“DO La Rioja”}]) ;
我在导航器中执行,我需要按F5查看JSON,但在Android中没有看到任何内容
我不知道如何解决这个问题,如果这个应用程序可以用phonegap做。
我也尝试过最后一个版本的cordova,但结果相同。
有人能帮助我吗?
答案 0 :(得分:0)
我回答我的问题,我需要放入链接rel =“external”
现在正在运作