位置: 编程技术 - 正文

Android WebView学习(androidstudio webview)

编辑:rootadmin
Android WebView学习文章来源:小小懒羊羊个人知识管理库权限:

推荐整理分享Android WebView学习(androidstudio webview),希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:androidx webview,android webview webgl,android webview ua,android web view,android web view,android webview webgl,android webview webgl,android webviewer,内容如对您有帮助,希望把文章链接给更多的朋友!

<uses-permission android:name=“android.permission.INTERNET” />

在WebView中使用JavaScript

WebView myWebView = (WebView) findViewById(R.id.webview);WebSettings webSettings = myWebView.getSettings();webSettings.setJavaScriptEnabled(true);

绑定JavaScript代码到Android源码

这段代码会创建一个名称为“Android”的JavaScript接口并运行在WebView当中。在这里,你的Web应用会接入到JavaScriptInterface类。例如,下面为Html何JavaScript代码,它会在用户点击按钮的时候使用新的接口创建一个Toast消息。

备注:在JavaScript中绑定的对象会运行在另一个线程,它和创建它的线程是不同的线程。处理页面导航

WebView myWebView = (WebView) findViewById(R.id.webview);myWebView.setWebViewClient(new WebViewClient());完成,现在用户点击的所有链接都会在WebView中打开。如果你想要在点击链接并载入网页的时候做更多的操作,请创建自己的WebViewClient 并重写java.lang.String) shouldOverrideUrlLoading()方法。例如:

操作网页历史

当你的WebView重写URL的载入,它会自动累积访问过的网页历史。你可以使用goBack()方法和goForward()方法操纵回退和向前功能。 例如,下面是Activity使用返回按钮操作“回退”功能

fragment中webview的历史操作webview.loaddata乱码解决

loadData()中的html data中不能包含'#', '%', '', '?'四中特殊字符,出现这种字符就会出现解析错误,显示找不到网页还有部分html代码。需要如何处理呢?我们需要用UrlEncoder编码为%, %, %, %3f 。可以使用以下两种代码,data为string类型的html代码1、webView.loadData(URLEncoder.encode(data, “utf-8”), “text/html”, “utf-8”);这样一些背景效果什么的都不怎么好看了。不推荐。2、webView.loadDataWithBaseURL(null,data, “text/html”, “utf-8”, null);这样就会完美解析了。编辑webview中文乱码解决:

WebView不加载图片问题

loadData不能加载图片内容,如果要加载图片内容或者获得更强大的Web支持请使用loadDataWithBaseURL。

android_webview中内容获取

在程序中经常会用到webView来显示网页,但如果能够得到网页中的内容呢

Android 中Webview 自适应屏幕方式一:在HTML页面中使用Viewport Metadata

上文只是一个只有两个viewport属性例子,下文描述了所有支持的viewport属性及其允许的&#;类型。

自动调整尺寸Android WebView学习(androidstudio webview)

<meta name=“viewport” content=“width=device-width” />

预定义viewport缩放

viewport的缩放&#;定义了页面所允许的缩放范围。viewport属性允许您通过以下方式指定您的页面缩放:initial-scale页面的初始缩放。这个&#;是一个指示您的页面相对于屏幕大小倍数的float&#;。例如,如果您设置初始缩放为“1.0”那么页面将根据目标密度1比1的显示。如果设置为“2.0”那么页面将放大2倍。为了将网页与viewport尺寸匹配,默认初始缩放是计算过的。因为默认viewport 是像素宽,如果设备屏幕判断为小于像素宽,初始缩放将以小于1.0的某个&#;为默认&#;,以便在屏幕上匹配一个像素宽的页面。minimum-scale允许的最小缩放。这个&#;是一个指示您的页面相对于屏幕大小最小倍数的float&#;。例如,如果您设置为1.0,那么因为最小大小和目标密度是1:1的,页面就不能缩小。maximum-scale允许的最大缩放。这个&#;是一个指示您的页面相对于屏幕大小最大倍数的float&#;。例如您设置此&#;为2.0,那么您就不能放大超过2倍。user-scalable是否允许用户缩放此页面。设置为yes允许缩放,no为不允许缩放。默认&#;是yes。如果您设置此&#;为no,那么minimum-scale和maximum-scale将会被忽略,因为缩放不可用。所以的缩放&#;必须在0.到之间。<meta name=“viewport” content=“initial-scale=1.0” />这个metadata设置初始缩放为相对于viewport目标密度的原始大小。

预定义viewport匹配密度

设备屏幕的密度基于屏幕决定,由每英寸的像素数(dpi)定义。有三种Android支持的密度:高(hdpi)、中(mdpi)和低(ldpi)您可以通过使用viewport属性target-densitydpi来为您的网页改变目标密度。它允许以下的&#;:device-dpi - 使用设备本地的dpi作为目标dpi。默认缩放将不会起作用。high-dpi - 使用hdpi作为目标dpi。 中和低密度的屏幕将会适当缩小。.medium-dpi - 使用mdpi作为目标dpi。 高和低密度的屏幕将会分别放大和缩小。这是默认的密度&#;。low-dpi - 使用ldpi作为目标dpi。 中和高密度的屏幕将会适当放大。<value> - 指定一个dpi&#;作为目标dpi。该&#;必须在-之间。例如,您可以通过设置viewport的target-densitydpi属性,来阻止Android浏览器和WebView为不同的分辨率缩放网页。而这个页面会以当匹配前屏幕的密度的大小显示。在本例中,您同样应该定义viewport的宽以匹配设备宽度,这样您的页面才会自然适合屏幕大小。例如:<meta name=“viewport” content=“target-densitydpi=device-dpi, width=device-width” />

方式二:用JavaScript适配设备密度

Android浏览器和WebView支持允许您请求当前设备的屏幕密度的DOM属性 - DOM属性 window.devicePixelRatio。这个属性的&#; 指定当前设备使用的比例系数。例如,如果window.devicePixelRatio的&#;是“1.0”,那么这个设备被认为是中等密度并且默认情况下不缩放;如果这个&#;是“1.5”,那么这个设备被认为是高密度并且默认情况下放大1.5x;如果这个&#;是“0.”,那么这个设备被认为是低密度并且默认情况下缩小0.x。默认匹配的是中等密度,但是您可以改变这个密度匹配来改变不同屏幕密度下您网页的缩放。

方式三:使用代码方式

本人测试还是存在问题关键代码:settings.setUseWideViewPort(true); settings.setLoadWithOverviewMode(true);

参考: =_=!)假设宽定位,则html5方面必须有:<meta name=“viewport” content=“width=, initial-scale=1.0,maximum-scale=2.0, minimum-scale=0.5, user-scalable=no,target-densitydpi=device-dpi” />其中,target-densitydpi是最重要的,它将配合android端的以下代码使用。

表示我们的代码支持html5网页自适应。所谓杀什么畜生用什么刀,网页的事情,dpi适应什么的,就交给html5去做好了 = =,不用我们在更外面一层蛋疼。这样做之后,宽的图片无论在什么设备的分辨率都是正常的尺寸,不会被做倍数不明的拉伸,方便我们控制。

最后我采取的策略:<meta name=“viewport” content=“width=device-width, initial-scale=1.0, user-scalable=yes,target-densitydpi=device-dpi”>

实例:自己开发简易脱机浏览器

google android sdk离线文档打开的时候特别慢,据说是要从谷歌官网拉取一些东西导致的。脱机浏览可以解决该问题。PC端可以使用firefox。但是Android端貌&#;没有支持脱机工作的浏览器。这让我很伤心。决定开发一个简易的脱机浏览器以便在手机端快速查看sdk文档。设计到的知识点主要为:WebView的初始化以及缩放问题;将应用程序添加到文件打开方式中。废话不多说:以下为代码部分:

MainActivityAndroidManifest.xml

参考:

6.9 android相机预览最佳分辨率计算 SwipeRefreshLayout下拉刷新的使用 仿开源中国api包内容的网络访问结构 这几天做一个自定义相机界面,发现相机老是被拉伸,于是自己想了一个自动选择最佳的尺寸,计算要求如下:1.尺寸越大越好,2.宽高比越接近越好标准

android:imeOptions属性 默认情况下软键盘右下角的按钮为下一个,点击会到下一个输入框,保持软键盘设置android:imeOptions=actionDone,软键盘下方变成完成,点击后光标保持在原

Activity与Theme 今天写Android程序的时候碰到的一个问题。记录一下。在程序中我需要从ActivityA启动ActivityB。我原来想把ActivityB设置一个固定的大小,不占满屏幕,这样

标签: androidstudio webview

本文链接地址:https://www.jiuchutong.com/biancheng/385998.html 转载请保留说明!

上一篇:[置顶] Android-通过SlidingPaneLayout高仿微信6.2最新版手势滑动返回(一)([置顶]马粥街残酷史)

下一篇:6.9 android相机预览最佳分辨率计算 SwipeRefreshLayout下拉刷新的使用 仿开源中国api包内容的网络访问结构(预拍摄功能相机)

  • 小规模纳税人转让不动产增值税
  • 钢铁租赁公司
  • 固定资产开专票怎么记凭证
  • 个体户三万以内免个税
  • 电子记账凭证需要划线吗
  • 企业所得税季报弥补以前年度亏损怎么填
  • 转让固定资产发生的费用可以税前扣除吗
  • 合同金额与结算金额一致,如何约定
  • 评估所得征税方法是一种控制纳税人逃税和避税的措施
  • 全年亏损,但季度预交企业所得税,汇算时怎么调平
  • 个人非货币性资产出资 个人所得税
  • 停车场收入怎么做账
  • 城建税和教育费附加的计税依据是什么
  • 自己公司开发票有什么好处
  • 材料报废的会计处理(一般纳税人)
  • 简述增值税纳税义务发生时间
  • 成品送检单表格
  • 一般纳税人房产税是按季还是按月申报
  • 企业税收分为几大类
  • 外籍人员在境内取得所得在我国应该计征个人所得税
  • 防伪税控发票维修流程
  • 键盘插上电脑却不能用
  • 退回的工伤费用怎么做账
  • 如何使用windows的记事本创建文件
  • ecshop怎么用
  • 借条和欠条的区别 法律效力
  • 什么是现金解款支付
  • 滴水观音的养殖方法选好浇水
  • 一只猫在花园里英语
  • 出差补贴怎么记账
  • 递延所得税资产和负债怎么理解
  • 最贵的电脑键盘
  • uni-app实例教程
  • 最好卖的游戏机排行榜
  • 最贵的手机号码值多少钱
  • thinkphp自定义标签page
  • 无票收入怎么计算1%税率
  • 小米开发回稳定
  • 购买方已认证怎么开具红字信息表
  • 退货的会计处理分录
  • 以固定资产增资流程是怎样操作
  • 租赁公司车转到私人名下
  • day28--Java泛型01
  • 帝国cms会员注册天数自动升级会员组
  • 在建工程账务怎么会转到预收账款
  • 无票收入会计分录实例
  • 服务型企业要缴哪些税
  • 年应税销售额是指纳税人在连续不超过12个月或四个季度
  • 个贷系统平账专户怎么做分录
  • 改变记帐方式的原因
  • 销售应税消费品缴纳的消费税计入
  • 建造合同信息表
  • 调表不调账都有什么情况
  • 减免增值税后附加怎么算
  • 资产处置损益在资产负债表哪里
  • 投资入股行为
  • 会计中的资金
  • VMWare linux mysql 5.7.13安装配置教程
  • solaris route add
  • Ubuntu开启热点
  • 进程关不掉怎么解决
  • 教你彻底消灭牛身上的蜱虫
  • win7开始菜单在哪个文件夹
  • xp开机提示explorer
  • auto mac
  • igfxem是什么软件
  • Win10预览版怎么变回正式版
  • javascriptz
  • js函数的作用
  • 红宝书csv
  • jquery和dom对象之间怎么转换
  • 安卓icon图标
  • linux shell脚本中sudo后输入密码
  • 用jquery
  • unity的shader用法
  • fiori开发
  • 安卓开源组件
  • 互城通怎么用微信充值
  • 小规模开了红字发票申报表怎么填
  • 云南省税务局网上办税服务厅官网
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设