我使用javascript在HTML5中开发了一款应用。我用json调用了php web服务。 现在我正在尝试为Android执行它。
该应用程序适用于模拟器上的Web服务,但无法从设备上的服务器加载文本和图像。
我尝试了很多解决方案,我在stackoverflow和其他链接上找到了,比如使用主机名,检查设备的wifi,清单文件中的INTERNET权限,使用WebView但它不起作用。
请帮忙。
//这就是我在eclipse中所做的。
public class MainActivity extends DroidGap {
WebView webview;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Log.d("hello","start");
webview = (WebView) findViewById(R.id.webview);
WebSettings webSettings = webview.getSettings();
webSettings.setJavaScriptEnabled(true);
webview.setWebChromeClient(new WebChromeClient());
webview.loadUrl("file:///android_asset/www/HTML/index.html");
Log.d("After load", "url");
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.main, menu);
return true;
}
}
获取图像和文本都是在javascript中完成的。它在浏览器和模拟器上都没有问题。但它在设备上失败了。
//这是我的json调用函数。
<script>
function jsondata(data)
{
setTimeout(function () {
var parsedata = JSON.parse(JSON.stringify(data));
var main_category = parsedata["mainCategory"];
for (var i = 0; i < main_category.length; i++)
{
var menu = main_category[i];
menu_id=menu['mcatid'];
var id = document.createElement("table");
if((i%2)==0)
{
id.innerHTML+='<br><br><br><td><a href="#" onclick="selected_index('+menu_id+')"><img src='+menu['mcatimage']+'><br><hr color=#000;> <strong><font face="DEVROYE">'+menu['mcattitle']+'<hr color=#000;></a></td></strong>';
document.getElementById("id_left").appendChild(id);
}
else
{
id.innerHTML+='<br><br><br><tr><td><a href="#" onclick="selected_index('+menu_id+')"><img src='+menu['mcatimage']+'><br><hr color=#000;> <strong><font face="DEVROYE">'+menu['mcattitle']+'<hr color=#000;></a></td></strong>';
document.getElementById("id_right").appendChild(id);
}
}
}, 2000);
}
/*-------------calling web service-----------*/
jsonp("http://hostname/maincategory.php?callback=jsondata");
</script>
以下是我从Web服务获取图像和文本并在HTML页面上显示的方式。 这有什么问题?
今天我尝试了很多方法,例如将<access origin="*"/>
更改为<access origin=".*"/>
和<access origin="http:hostname"/>
但没有任何效果。
答案 0 :(得分:0)
我的应用程序现在也适用于设备。
android方面没有问题。我在javascript中使用了ajax而不是json。它也开始在设备上高效工作。