spr*_*ing 5 ajax android cross-domain android-webview jquery-mobile
我正在使用jquerymobile开发一个javascript/HTML应用程序,它向远程服务器发出ajax请求.该应用程序在Chrome上运行正常(仅在启用了禁用Web安全性的Chrome时启动)但是当我将其嵌入到Android应用程序的资产/目录(简单的webview)中时,远程ajax调用失败.因此我想这可能是一个跨域问题.我知道phonegap没有这个问题,但如果可能的话我不想使用phonegap.所以问题是:如何在Android webview应用程序中禁用跨域保护?
这是活动代码:
public class Moby extends Activity {
@SuppressLint("NewApi")
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_moby);
WebView mbrowser = (WebView) findViewById(R.id.webView1); //get the WebView from the layout XML
if (Build.VERSION.SDK_INT >= VERSION_CODES.JELLY_BEAN)
mbrowser.getSettings().setAllowUniversalAccessFromFileURLs(true);
//mbrowser.setWebChromeClient(new WebChromeClient());
mbrowser.setWebViewClient(new WebViewClient());
mbrowser.loadUrl("file:///android_asset/index.html"); //set the HTML
WebSettings settings = mbrowser.getSettings();
settings.setJavaScriptEnabled(true);
}
Run Code Online (Sandbox Code Playgroud)
}
<uses-permission android:name="android.permission.INTERNET" />
Run Code Online (Sandbox Code Playgroud)
我已经在我的html页面中设置了jquerymobile跨域参数:
<script src="script/jquery-1.8.2.js"></script>
<script>
$(document).bind("mobileinit", function(){
$.support.cors = true;
$.mobile.allowCrossDomainPages = true;
});
</script>
<script src="script/jquery.mobile-1.2.0.js"></script>
Run Code Online (Sandbox Code Playgroud)
我没有足够的积分来发表评论,但是,请查看以下内容:
ajax在某些Android设备上运行,而在其他Android设备上不运行
具体来说,基于Chrome的webView需要以下内容:
webView.getSettings()。setAllowUniversalAccessFromFileURLs(true);
编辑:对不起,我刚刚看到您已经在执行此操作-我在终端上对此进行了测试,它似乎已经解决了我的问题(通过ajax加载本地链接时出现access-control-allow-origin错误)。
小智 5
试试这个
WebView web=(WebView) findViewById(R.id.webView1);
web.getSettings().setJavaScriptEnabled(true);
Run Code Online (Sandbox Code Playgroud)
Kén*_*ium -1
在您的 AndroidManifest.xml 中,是否有以下行:
<uses-permission android:name="android.permission.INTERNET" />
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
15294 次 |
| 最近记录: |