ori*_*rel 29 javascript android cross-domain same-origin-policy android-webview
我将一个本地html文件(从assets文件夹)加载到应用程序WebView.在HTML中我运行了一个jQuery.getJSON(url).url是一个远程服务器.
这个动作失败了,我猜是因为一个不同的起源问题(跨域).我在chrome上运行相同的文件,并在那里专门说明.
有没有办法允许Android中的WebView在本地加载的HTML文件中从远程服务器加载数据?
Ste*_*any 53
今天早上我找到了似乎有效的解决方案.
初始化WebView:
WebView _webView = (WebView) this.findViewById(R.id.id_of_your_webview_in_layout);
Run Code Online (Sandbox Code Playgroud)
获取WebView设置:
WebSettings settings = _webView.getSettings();
Run Code Online (Sandbox Code Playgroud)
设置以下设置:
settings.setJavaScriptEnabled(true);
settings.setAllowFileAccessFromFileURLs(true); //Maybe you don't need this rule
settings.setAllowUniversalAccessFromFileURLs(true);
Run Code Online (Sandbox Code Playgroud)
现在您可以通过标准方式加载您的html文件:
_webView.loadUrl("file:///android_asset/www/index.html");
Run Code Online (Sandbox Code Playgroud)
通过标准方式创建XHR请求
var xhr = new XMLHttpRequest();
xhr.open("get", "http://google.com", false);
xhr.send();
Run Code Online (Sandbox Code Playgroud)
在某处打印结果
document.body.innerHTML = xhr.responseText
Run Code Online (Sandbox Code Playgroud)
注意: 此过程仅适用于16级或更高级别的API(至少文档说明了这一点).
我将本地 html 文件(从资产文件夹)加载到应用程序 WebView
请注意,您没有说明您是如何做到这一点的。我猜测这是通过loadUrl()URL 进行的file:///android_asset。
有没有办法让Android中的WebView从远程服务器加载数据到本地加载的HTML文件上?
尝试使用loadDataWithBaseURL()加载内容,提供远程服务器上的 URL 作为基本 URL。
| 归档时间: |
|
| 查看次数: |
36998 次 |
| 最近记录: |