您好,我遇到了一个我正在尝试使用 phonegap 构建的 android 应用程序。我尝试构建的应用程序从我在本地安装的 wordpress 站点检索提要。我已经安装并测试了 JSON-API 插件并且它工作正常。
但是当我使用带有 Eclipse 的 phonegap 创建一个 android 应用程序时,我没有通过 javascript 加载提要。
我在代码所在的 projectfolder/assets/www 文件夹下创建了一个 html 文件
<!DOCTYPE HTML>
<html>
<head>
<script src="jquery.js"></script>
<script src="cordova.js"></script>
<script>
jQuery.support.cors = true;
var target_div = "#contents";
var nextID = null;
var prevID = null;
var api_read_url = "http://127.0.0.1/wordpress_phonegap/?json=get_post&dev=1&id=";
var init_url = "http://127.0.0.1/wordpress_phonegap/?json=get_post&dev=1&p=1";
function getID(url) {
var str = new String(url);
var x = str.split("=");
var id = x[1];
return id;
}
function readSinglePost (url,target_div) {
var URL = url+"&callback=?";
console.log(URL);
jQuery.ajax({
url: URL,
dataType: "json",
jsonp: null,
jsonpCallback: null,
success: function(data) {
alert(data);
jQuery(target_div).html("");
try{
jQuery(target_div).append("<h1>"+data.post.title+"</h1>");
jQuery(target_div).append(data.post.content);
jQuery(target_div).append("<small>"+data.post.date+"</small>");
} catch (e){
console.log("error console");
}
try {
nextID = getID(data.next_url);
}
catch (e) {
;
}
try {
prevID = getID(data.previous_url);
}
catch (e) {
; // you should include some of your own error-handling code or
}
} ,
error: function(error){
console.log("error console");
}
});
}
//Renew next and previous buttons
function getNext(){
jQuery("#next").click(function(){
var id = nextID;
var nextURL = api_read_url + id;
readSinglePost(nextURL, target_div);
});
}
function getPrevious(){
jQuery("#previous").click(function(){
var id= prevID;
var prevURL = api_read_url + id;
readSinglePost(prevURL, target_div);
})
}
jQuery(document).ready(function() {
readSinglePost(init_url, target_div);
getNext();
getPrevious();
});
</script>
</head>
<body>
<div id="main">
<button type="button" id="previous">Previous</button>
<button type="button" id="next">Next</button>
<div id="title"></div>
<div id="contents"></div>
</div>
</body>
</html>
当我使用 firefox 和 firebug 打开此文件时,我在控制台中收到以下错误。
SyntaxError: invalid label
"status": "ok",
我明白发生了什么。因为它是一个跨浏览器交互,所以 json 以 jsonp 格式发送,因此 json 值被包装在一个函数中发送。我怎样才能正确获得价值?
我已经阅读了几个主题和文章,但不幸的是我没有找到解决方案。示例来自《WordPress Mobile Applications with PhoneGap》一书中的教程