我用html/js开发了一个单页游戏,我试图在android webview中托管它.我有一个文件夹src/main/assets/www/和这行代码来引导我的应用程序:
mWebView.loadUrl("file:///android_asset/www/index.html");
Run Code Online (Sandbox Code Playgroud)
在index.html负载一个app.js文件,该文件是我的比赛.当我试图使xhr来自内部的请求app.js来获得assets/myimage.svg(物理位置src/main/assets/www/assets/myimage.svg):
var xhr = new XMLHttpRequest();
xhr.open('get', 'assets/myimage.svg', true);
xhr.send();
Run Code Online (Sandbox Code Playgroud)
我收到这个错误:cross origin requests are only supported for http.为什么这是一个跨源请求?我该怎么做才能解决这个问题?我不能在http网络服务器上托管svg,也不能内嵌它app.js- 它必须从磁盘加载.
min*_*bro 47
不确定,但您可以尝试这些步骤,看看它是否有帮助:
a)初始化WebView:
b)获取WebView设置:
WebSettings settings = _webView.getSettings();
Run Code Online (Sandbox Code Playgroud)
c)设置以下设置:
settings.setAllowFileAccessFromFileURLs(true);
settings.setAllowUniversalAccessFromFileURLs(true);
Run Code Online (Sandbox Code Playgroud)
d)现在你可以通过标准方式加载你的html文件:
mWebView.loadUrl("file:///android_asset/www/index.html");
Run Code Online (Sandbox Code Playgroud)
e)不要忘记在清单文件中添加互联网权限:
<uses-permission android:name="android.permission.INTERNET"/>
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
13437 次 |
| 最近记录: |