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相关推荐

  1. 【安卓学习之第三方库】 Rxpay学习:支付宝微信支付

    █ [安卓学习之第三方库] Rxpay学习:支付宝微信支付 █ 相关文章: [安卓学习之第三方库]库的使用2-jar类库的使用(以dom4j为例)和升级(以极光推送为例) [安卓学习之第三方库] 消息 ...

  2. 安卓学习文档收集汇总

    安卓学习文档收集汇总 https://www.jianshu.com/p/86aed183ce6c?utm_campaign=maleskine&utm_content=note&ut ...

  3. 【安卓学习之开发工具】 Android 学习-- 下载过的一些项目

    █ [安卓学习之开发工具] Android 学习-- 下载过的一些项目 █ 相关文章: ● [安卓学习之常见问题] app维护可能遇到的问题 ● [IOS学习之常见问题] app维护可能遇到的问题 ● ...

  4. .Net程序员安卓学习之路5:使用xutils注入View和事件以及图片的显示

    原文:.Net程序员安卓学习之路5:使用xutils注入View和事件以及图片的显示 xUtils注入和图片显示 一.xUtils注入 引用官方介绍: ViewUtils模块:•android中的io ...

  5. 2020年安卓学习笔记目录

    文章目录 一.讲课笔记 二.安卓案例 三.安卓实训项目 四.学生安卓学习博客 五.安卓课后作业 (一)界面设计练习 1.制作登录界面 2.制作部队管理界面 3.制作灭火救援界面 4.制作交付界面 5. ...

  6. 安卓学习笔记07:事件处理、窗口跳转与传递数据

    文章目录 零.学习目标 一.三个基本控件 1.标签控件(TextView) 2.编辑框控件(EditText) 3.按钮控件(Button) 二.安卓事件处理机制 (一)安卓事件处理概述 (二)安卓事 ...

  7. 安卓学习专栏——百度地图(6)移动到我的位置(图文+代码)

    步骤 系列文章 前言 介绍api 实现效果 activity_main.xml AndroidManifest.xml MainActivity.java(修改) 附录.参考资料 下载资源 总结 系列 ...

  8. 【安卓学习之互动直播】 腾讯云直播 1 - 注册/登录/个人信息

    █ [安卓学习之互动直播] 腾讯云直播 1 - 注册/登录/个人信息 █ 相关文章: ● [安卓学习之互动直播] 腾讯云直播 1 - 注册/登录/个人信息 ● [安卓学习之互动直播] 腾讯云直播 2 ...

  9. 【安卓学习之常见问题】百度地图卫星地图精度不够

    █ [安卓学习之常见问题]百度地图卫星地图精度不够 █ 系列文章目录 提示:这里是收集了和文件分享有关的文章 [安卓学习之常见问题]android路径及文件问题 [安卓学习之常见问题]文件分享–文件不 ...

最新文章

  1. git 查看修改的代码行数,新增的文件以及删除的代码行数
  2. 适合初学者学java技术的书籍推荐!
  3. 全国农商互联暨精准扶贫产销对接 对话农民丰收节交易会
  4. 关于.net项目从vs2003升级到2005的若干问题
  5. excel 2007 vba与宏完全剖析_Excel怎么保护自己的劳动成果?强制用户启用宏,再加上这一步...
  6. python-字符串方法
  7. PG基于repmgr实现自动和手动故障切换
  8. Python使用广度优先和深度优先两种方法遍历目录树
  9. Java基础知识强化之集合框架笔记50:Map集合之Map集合的概述和特点
  10. JavaScript -- DOM树
  11. java调用matlab的jar包
  12. mysql运维监控工具排名_运维监控工具
  13. 2015年8月18日工作日志--------赵鑫
  14. 必须了解的网络运维知识
  15. 高颜值游戏专属蓝牙耳机推荐,2020五款商城高人气蓝牙耳机
  16. CISCO路由器、交换机设备破解密码
  17. 迅捷路由器造成计算机无法上网,迅捷路由器不能上网怎么办
  18. jquery.uploadView.js图片上传插件
  19. Excel数据分析从入门到精通(一)软件操作技巧
  20. win10系统vvv连接不上,提示:“在连接完成前,连接被远程计算机终止”的解决办法

热门文章

  1. 微信支付宝服务器在哪里,支付宝支付与微信支付服务端回调notify_url数据的区别...
  2. as3转换为html5,AS3和HTML5 - 使用正则表达式将字符串解析为数组
  3. 西交计算机组成原理第四章,17春西交《计算机组成原理》在线作业.doc
  4. systemd管理mysql多实例_使用 systemd 配置多个 MySQL 8.0 实例
  5. python爬取方式_Python 爬虫入门(三)—— 寻找合适的爬取策略
  6. java inputreader_Java之InputStreamReader类的实现
  7. 计算机网络专业教学模式,计算机网络技术专业教学模式改革探索
  8. (1)hibenrate入门例子
  9. eclipse如何给main函数传参数
  10. 干货|靶场|工具|字典 分享