webview常用方法

简介: 牙叔教程 简单易懂

牙叔教程 简单易懂


"ui";
/*
 * @version: 1.0
 * @Date: 2021-12-12 22:45:09
 * @LastEditTime: 2021-12-12 23:36:13
 * @LastEditors: 牙叔
 * @Description:
 * @FilePath: \webview缩放\main.js
 * @名人名言: 牙叔教程 简单易懂
 * @bilibili: 牙叔教程
 * @公众号: 牙叔教程
 * @QQ群: 747748653
 */
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/";
/* -------------------------------settings------------------------------------------- */
var settings = webView.getSettings();
// 电脑头
// settings.setUserAgentString(
//   "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/63.0.3239.132 Safari/537.36"
// );
// 手机头
settings.setUserAgentString("JUC (Linux; U; 2.3.7; zh-cn; MB200; 320*480) UCWEB7.9.3.103/139/999");
// printObj(settings)
settings.setLoadsImagesAutomatically(true); // 是否自动加载图片
settings.setDefaultTextEncodingName("UTF-8"); // 设置默认的文本编码 UTF-8 GBK
settings.setJavaScriptEnabled(true); // 设置是否支持js
settings.setJavaScriptCanOpenWindowsAutomatically(true); // 设置是否允许js自动打开新窗口, window.open
settings.setSupportZoom(true); // 是否支持页面缩放
settings.setBuiltInZoomControls(true); // 是否出现缩放工具
settings.setUseWideViewPort(true); // 容器超过页面大小时, 是否将页面放大到塞满容器宽度的尺寸
settings.setLoadWithOverviewMode(true); // 页面超过容器大小时, 是否将页面缩小到容器能够装下的尺寸
// 自适应屏幕的算法
// public enum LayoutAlgorithm {
//   NORMAL,
//   /**
//    * @deprecated This algorithm is now obsolete.
//    */
//   @Deprecated
//   SINGLE_COLUMN,
//   /**
//    * @deprecated This algorithm is now obsolete.
//    */
//   @Deprecated
//   NARROW_COLUMNS,
//   TEXT_AUTOSIZING
// }
settings.setLayoutAlgorithm(WebSettings.LayoutAlgorithm.TEXT_AUTOSIZING); // 设置自适应屏幕的算法
settings.setAppCacheEnabled(false); // 是否启用app缓存
settings.setAppCachePath("/sdcard/aaa"); // app缓存文件路径
settings.setAllowFileAccess(true); // 是否允许访问文件
settings.setDatabaseEnabled(true); // 是否启用数据库
settings.setDomStorageEnabled(true); // 是否本地存储
/* -------------------------WebViewClient------------------------------------------------- */
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);
/* -------------------------WebChromeClient----------------------------------------------- */
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);
/* ----------------------------Cookie---------------------------------------------- */
var cookieManager = android.webkit.CookieManager.getInstance();
cookieManager.setAcceptCookie(true);
let ck = cookieManager.getCookie(url);
log("ck = " + ck);
/* -------------------------DownloadListener------------------------------------------------- */
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);


环境

手机: Mi 11 Pro

Android版本: 11

Autojs版本: 9.0.13


名人名言


思路是最重要的, 其他的百度, bing, stackoverflow, github, 安卓文档, autojs文档, 最后才是群里问问
--- 牙叔教程


声明


部分内容来自网络
本教程仅用于学习, 禁止用于其他用途

相关文章
|
7月前
|
小程序 Android开发
Appium微信小程序自动化之开启webview调试功能方法封装
Appium微信小程序自动化之开启webview调试功能方法封装
217 0
|
XML JavaScript Android开发
安卓开发学习笔记(五):史上最简单且华丽地实现Android Stutio当中Webview控件https/http协议的方法
一.我们先在XML当中自定义一个webview(Second_layout.xml) 代码如下: 1 2 10 15 可以看到,这里我们使用了现行布局以及WebView控件,tools:context=".SecondActivity"告诉我们这个控件是定义在第二个主活动当中的。
1362 0
|
缓存 JavaScript 前端开发
webview 常用方法
webview 常用方法 package com.orgcent.webview; import android.app.Activity; import android.os.Bundle; import android.
1430 0
|
Web App开发 JavaScript 前端开发
Android中WebView加载本地Html,与JavaScript与Android方法相互传值(续)
版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/u010046908/article/details/51809558 ...
1050 0
|
Web App开发 JavaScript 前端开发
Android中WebView加载本地Html,与JavaScript与Android方法相互传值
版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/u010046908/article/details/51759125 最近在做项目中,要使用HightChart来实现心电图,于是,使用WebView加载本地html页面,但是数据是通过蓝牙设备采集的数据,用Java代码获取的数据,需要将数据传到JavaScript中去,使用来绘制心电图。
1587 0
|
Web App开发 前端开发 JavaScript
解决 android 高低版本 webView 里内容 自适应屏幕的终极方法
转载请声明出处(http://www.cnblogs.com/linguanh/)    一,先说下我的情况,大家可以对号入座(嫌无聊请跳过)       我的项目要求是这样的,先从数据库里面拿出来html标签,因为加载到移动端的网页内容是用户在网页编辑好了之后提交到服务器的,即网页内容是 b...
1150 0
|
Android开发
解决WebView调用loadData()方法显示乱码的问题
第一步: mWebView.getSettings().setDefaultTextEncodingName("UTF-8"); 第二步: mWebView.
830 0
|
Android开发
android笔记之在WebView中显示ProgressBar的两种方法
http://blog.csdn.net/liuzhidong123/article/details/6450334 本文基于Creative Commons Attribution 2.5 China Mainland License发布,欢迎转载,演绎或用于商业目的,但是必须保留本文的署名http://www.cnblogs.com/luminji(包含链接)。
884 0