Auto.js控制WebView常用方法
牙叔教程
"ui";
importClass(android.webkit.WebSettings);
ui.layout(
<vertical id="main" padding="10 10 10 30" bg="#ff1e90ff">
<scroll>
<webview id="webView" />
</scroll>
</vertical>
);
var webView = ui.webView;
var url = "https://www.baidu.com/";
var settings = webView.getSettings();
settings.setUserAgentString("JUC (Linux; U; 2.3.7; zh-cn; MB200; 320*480) UCWEB7.9.3.103/139/999");
settings.setLoadsImagesAutomatically(true);
settings.setDefaultTextEncodingName("UTF-8");
settings.setJavaScriptEnabled(true);
settings.setJavaScriptCanOpenWindowsAutomatically(true);
settings.setSupportZoom(true);
settings.setBuiltInZoomControls(true);
settings.setUseWideViewPort(true);
settings.setLoadWithOverviewMode(true);
settings.setLayoutAlgorithm(WebSettings.LayoutAlgorithm.TEXT_AUTOSIZING);
settings.setAppCacheEnabled(false);
settings.setAppCachePath("/sdcard/aaa");
settings.setAllowFileAccess(true);
settings.setDatabaseEnabled(true);
settings.setDomStorageEnabled(true);
var WebViewClient = android.webkit.WebViewClient;
var webViewClient = new JavaAdapter(WebViewClient, {
onPageStarted: function (view, url, favicon) {
console.log("onPageStarted");
},
onPageFinished: function (view, url) {
console.log("onPageFinished");
},
onReceivedError: function (view, errorCode, description, failingUrl) {
console.log("onReceivedError");
},
shouldOverrideUrlLoading: function (view, url) {
console.log("shouldOverrideUrlLoading");
},
shouldInterceptRequest: function (view, url) {
console.log("shouldInterceptRequest");
},
});
webView.setWebViewClient(webViewClient);
let WebChromeClient = android.webkit.WebChromeClient;
var webChromeClient = new JavaAdapter(WebChromeClient, {
onReceivedTitle: function (webView, title) {
console.log("onReceivedTitle");
},
onProgressChanged: function (view, progress) {
console.log("onProgressChanged");
},
onJsAlert: function (view, url, message, result) {
console.log("onJsAlert");
},
onJsConfirm: function (view, url, message, result) {
console.log("onJsConfirm");
},
onJsPrompt: function (view, url, message, defaultValue, result) {
console.log("onJsPrompt");
},
onGeolocationPermissionsShowPrompt: function (origin, callback) {
console.log("onGeolocationPermissionsShowPrompt");
},
});
webView.setWebChromeClient(webChromeClient);
var cookieManager = android.webkit.CookieManager.getInstance();
cookieManager.setAcceptCookie(true);
let ck = cookieManager.getCookie(url);
log("ck = " + ck);
webView.setDownloadListener(
new android.webkit.DownloadListener({
onDownloadStart: function (url, userAgent, contentDisposition, mimeType, contentLength) {},
})
);
webView.post(
new java.lang.Runnable({
run: function () {
toastLog("Runnable");
},
})
);
function 网页中获取网页源代码() {
return document.getElementsByTagName("html")[0].outerHTML;
}
webView.loadUrl(url);