webview本地html ajax,Android WebView + AJAX本地文件

我有一个android webview加载我在本地拥有资产的网站。我不是自己构建的,对标记,js等的控制很少。

问题:网站的某些部分使用jquery $ .ajax-

gets获取HTML以模态显示,并且我认为我遇到了跨域问题(如果我在台式机上本地测试该网站,则会得到相同的来源-警告,我的来源是“

null”),即由于某种原因,本地js无法ajax获取Assets文件夹中的其他本地文件,因为底层浏览器认为这些来自不同的来源。我已经阅读了有关该内容的所有内容,但似乎没有任何区别。在LogCat中未收到任何错误或警告。

它在Nexus 7上运行,文件位于资产文件夹(file:///android_asset)中。其他一切都工作正常,但是使用ajax GET却没有运气。

从清单中:

android:minSdkVersion="16"

android:targetSdkVersion="18" />

相关的网页视图代码:

mWebView = (WebView) findViewById(R.id.webview);

mWebView.setWebChromeClient(new WebChromeClient());

mWebView.getSettings().setJavaScriptEnabled(true);

mWebView.getSettings().setDomStorageEnabled(true);

mWebView.getSettings().setLoadWithOverviewMode(true);

mWebView.getSettings().setUseWideViewPort(true);

mWebView.getSettings().setSupportMultipleWindows(true);

mWebView.getSettings().setJavaScriptCanOpenWindowsAutomatically(true);

mWebView.setHorizontalScrollBarEnabled(false);

mWebView.setScrollBarStyle(WebView.SCROLLBARS_OUTSIDE_OVERLAY);

mWebView.getSettings().setAllowFileAccessFromFileURLs(true);

mWebView.getSettings().setAllowUniversalAccessFromFileURLs(true);

mWebView.addJavascriptInterface(this, "android");

if (savedInstanceState != null) {

mWebView.restoreState(savedInstanceState);

} else {

mWebView.loadUrl("file:///android_asset/site/index.html");

}

这是相关的js:

var load = function ( source, callback, dontShowLoader ) {

if( !dontShowLoader ) {

loading( 'show' );

}

$.ajax({

url: source,

type: 'GET',

data: {

campaign: true

},

success: function ( data ) {

var $data = $(data);

loading( 'hide' );

$data.data( 'url', source );

callback( $(data) );

}

});

};

我在这里想念什么吗?真的没有办法对本地文件内容执行Ajax GET吗?请注意,我 只有

本地文件可以使用,正常使用情况是使用该应用程序时平板电脑未连接到互联网,因此任何外部呼叫都无法进行。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值