安卓学习-WebView
2019独角兽企业重金招聘Python工程师标准>>>
WebView与JS交互
<uses-permission android:name="android.permission.INTERNET"></uses-permission>
activity_main.xml
<?xml version="1.0" encoding="utf-8"?><RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent"
tools:context="com.example.administrator.webview.MainActivity">
<WebView android:layout_width="match_parent" android:layout_height="match_parent" android:id="@+id/webView">
</WebView></RelativeLayout>
MainActivity.java
package com.example.administrator.webview;
import android.os.Handler;import android.support.v7.app.AppCompatActivity;import android.os.Bundle;import android.view.KeyEvent;import android.view.View;
import android.webkit.JavascriptInterface;import android.webkit.WebChromeClient;import android.webkit.WebSettings;import android.webkit.WebView;import android.webkit.WebViewClient;
public class MainActivity extends AppCompatActivity { private WebView webView; private Handler handler;
@Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); webView = (WebView) findViewById(R.id.webView); handler = new Handler();
// webView.loadData("<html><title></title><body>hello webView</body></html>","text/html","utf-8"); WebSettings settings = webView.getSettings(); settings.setJavaScriptEnabled(true);//允许使用JS settings.setSupportZoom(true); settings.setBuiltInZoomControls(true);//允许缩放 webView.requestFocus();//防止软键盘无法打开的问题 webView.setScrollBarStyle(View.SCROLLBARS_INSIDE_INSET);
//设置点击链接在当前WebView中显示 webView.setWebViewClient(new WebViewClient() { @Override public boolean shouldOverrideUrlLoading(WebView view, String url) {
view.loadUrl(url); return true; } });
//处理标题,图标等等 webView.setWebChromeClient(new WebChromeClient() { @Override public void onReceivedTitle(WebView view, String title) { super.onReceivedTitle(view, title); } }); webView.addJavascriptInterface(new MyObject(), "demo"); //webView.loadUrl("http://www.baidu.com"); webView.loadUrl("file:///android_asset/index.html"); }
public class MyObject { @JavascriptInterface public void clickOnAndroid() { handler.post(new Runnable() { @Override public void run() { webView.loadUrl("javascript:wave()"); } }); } }
//设置回退键 @Override public boolean onKeyDown(int keyCode, KeyEvent event) { if (keyCode == KeyEvent.KEYCODE_BACK && webView.canGoBack()) { webView.goBack(); return true; } return super.onKeyDown(keyCode, event); }}
index.xml
<html>
<title>hello webView</title>
<script language="javascript">
<!-- function wave() { document.getElementById("imgid").src="pic0.jpg"; }
//->
</script><body><a onClick="window.demo.clickOnAndroid()"> <img src="pic15.jpg" id="imgid"/></a></body>
</html>
转载于:https://my.oschina.net/xiaofeiandroid/blog/655495
安卓学习-WebView相关推荐
- 【安卓学习之第三方库】 Rxpay学习:支付宝微信支付
█ [安卓学习之第三方库] Rxpay学习:支付宝微信支付 █ 相关文章: [安卓学习之第三方库]库的使用2-jar类库的使用(以dom4j为例)和升级(以极光推送为例) [安卓学习之第三方库] 消息 ...
- 安卓学习文档收集汇总
安卓学习文档收集汇总 https://www.jianshu.com/p/86aed183ce6c?utm_campaign=maleskine&utm_content=note&ut ...
- 【安卓学习之开发工具】 Android 学习-- 下载过的一些项目
█ [安卓学习之开发工具] Android 学习-- 下载过的一些项目 █ 相关文章: ● [安卓学习之常见问题] app维护可能遇到的问题 ● [IOS学习之常见问题] app维护可能遇到的问题 ● ...
- .Net程序员安卓学习之路5:使用xutils注入View和事件以及图片的显示
原文:.Net程序员安卓学习之路5:使用xutils注入View和事件以及图片的显示 xUtils注入和图片显示 一.xUtils注入 引用官方介绍: ViewUtils模块:•android中的io ...
- 2020年安卓学习笔记目录
文章目录 一.讲课笔记 二.安卓案例 三.安卓实训项目 四.学生安卓学习博客 五.安卓课后作业 (一)界面设计练习 1.制作登录界面 2.制作部队管理界面 3.制作灭火救援界面 4.制作交付界面 5. ...
- 安卓学习笔记07:事件处理、窗口跳转与传递数据
文章目录 零.学习目标 一.三个基本控件 1.标签控件(TextView) 2.编辑框控件(EditText) 3.按钮控件(Button) 二.安卓事件处理机制 (一)安卓事件处理概述 (二)安卓事 ...
- 安卓学习专栏——百度地图(6)移动到我的位置(图文+代码)
步骤 系列文章 前言 介绍api 实现效果 activity_main.xml AndroidManifest.xml MainActivity.java(修改) 附录.参考资料 下载资源 总结 系列 ...
- 【安卓学习之互动直播】 腾讯云直播 1 - 注册/登录/个人信息
█ [安卓学习之互动直播] 腾讯云直播 1 - 注册/登录/个人信息 █ 相关文章: ● [安卓学习之互动直播] 腾讯云直播 1 - 注册/登录/个人信息 ● [安卓学习之互动直播] 腾讯云直播 2 ...
- 【安卓学习之常见问题】百度地图卫星地图精度不够
█ [安卓学习之常见问题]百度地图卫星地图精度不够 █ 系列文章目录 提示:这里是收集了和文件分享有关的文章 [安卓学习之常见问题]android路径及文件问题 [安卓学习之常见问题]文件分享–文件不 ...
最新文章
- git 查看修改的代码行数,新增的文件以及删除的代码行数
- 适合初学者学java技术的书籍推荐!
- 全国农商互联暨精准扶贫产销对接 对话农民丰收节交易会
- 关于.net项目从vs2003升级到2005的若干问题
- excel 2007 vba与宏完全剖析_Excel怎么保护自己的劳动成果?强制用户启用宏,再加上这一步...
- python-字符串方法
- PG基于repmgr实现自动和手动故障切换
- Python使用广度优先和深度优先两种方法遍历目录树
- Java基础知识强化之集合框架笔记50:Map集合之Map集合的概述和特点
- JavaScript -- DOM树
- java调用matlab的jar包
- mysql运维监控工具排名_运维监控工具
- 2015年8月18日工作日志--------赵鑫
- 必须了解的网络运维知识
- 高颜值游戏专属蓝牙耳机推荐,2020五款商城高人气蓝牙耳机
- CISCO路由器、交换机设备破解密码
- 迅捷路由器造成计算机无法上网,迅捷路由器不能上网怎么办
- jquery.uploadView.js图片上传插件
- Excel数据分析从入门到精通(一)软件操作技巧
- win10系统vvv连接不上,提示:“在连接完成前,连接被远程计算机终止”的解决办法
热门文章
- 微信支付宝服务器在哪里,支付宝支付与微信支付服务端回调notify_url数据的区别...
- as3转换为html5,AS3和HTML5 - 使用正则表达式将字符串解析为数组
- 西交计算机组成原理第四章,17春西交《计算机组成原理》在线作业.doc
- systemd管理mysql多实例_使用 systemd 配置多个 MySQL 8.0 实例
- python爬取方式_Python 爬虫入门(三)—— 寻找合适的爬取策略
- java inputreader_Java之InputStreamReader类的实现
- 计算机网络专业教学模式,计算机网络技术专业教学模式改革探索
- (1)hibenrate入门例子
- eclipse如何给main函数传参数
- 干货|靶场|工具|字典 分享