在安卓中使用Webview调用tableau的视图,因为是跨域、http和https混合,因此出现了很多坑,列在下面:
1、跨域、http和https问题
webView = (WebView) findViewById(R.id.webView);
WebSettings webSettings = webView.getSettings();
webSettings.setJavaScriptEnabled(true);
webSettings.setDomStorageEnabled(true);
webSettings.setAllowFileAccessFromFileURLs(true);
webSettings.setMixedContentMode(WebSettings.MIXED_CONTENT_COMPATIBILITY_MODE);
允许使用js--使用DOM缓存--允许跨域--跨域混合模式
2、调用报表,出现登录界面
需要允许Webview使用第三方Cookies
引用:
import android.webkit.CookieManager;
代码:
CookieManager.getInstance().setAcceptCookie(true);
if (android.os.Build.VERSION.SDK_INT >= 21) {
CookieManager.getInstance().setAcceptThirdPartyCookies(webView, true);
} else {
CookieManager.getInstance().setAcceptCookie(true);
}
然后调用Webview,访问网页就可以了。
webView.setWebViewClient(new WebViewClient());
//https://www.bizinsight.com.cn/openDocument.jsp?reportID=
String url = Url.OPEN_DOCUMENT + "?reportID=" + getIntent().getStringExtra("report_id");
webView.loadUrl(url);

本文详细介绍了在Android应用中使用Webview加载Tableau报表遇到的跨域、http与https混合及第三方Cookies问题的解决方案,包括设置Webview参数、启用JS、DOM缓存及跨域访问等。

被折叠的 条评论
为什么被折叠?



