如何在 nativescript 中从 WebSettings 调用 setAllowUniversalAccessFromFileURLs?

How to call setAllowUniversalAccessFromFileURLs from WebSettings in nativescript?

在 Android 原生开发中,允许 XMLHttpRequests 在某些情况下我们需要从 webviewjavascript 请求文件,一种方法是在 WebSettings 实例上设置 setAllowUniversalAccessFromFileURLs(true)(在 API 级别 17+ 上)。 有没有办法在 nativescript 上做到这一点?

显示的错误是:

XMLHttpRequest cannot load file:///data/data/.... Cross origin requests are only supported for protocol schemes: http, data, https.", source: file:///data/data/com.yourdomain.appname/files/app/app/frameworks/nativescript.framework/app/components/login/

只需快速查看 Android 文档,您就可以获得 Web 视图的 WebSettings:https://developer.android.com/reference/android/webkit/WebView.html#getSettings()

因此,在您的 webview 实例的 loaded 事件中,附加一个事件处理程序,并在该 JS 代码中执行如下操作:

function webViewLoaded(args) { if (args.object.android) { var webView = args.object.android; webView.getSettings().setAllowUniversalAccessFromFileURLs(true); } }