java和js互调 webview
public class JavaAndJSActivity extends Activity implements View.OnClickListener {
private EditText etNumber;
private EditText etPassword;
private Button btnLogin;
/**
* 加载网页或者说H5页面
*/
private WebView webView;
/**
* Find the Views in the layout<br />
* <br />
* Auto-created on 2016-07-28 11:43:37 by Android Layout Finder
* (http://www.buzzingandroid.com/tools/android-layout-finder)
*/
private void findViews() {
setContentView(R.layout.activity_java_and_js);
etNumber = (EditText) findViewById(R.id.et_number);
etPassword = (EditText) findViewById(R.id.et_password);
btnLogin = (Button) findViewById(R.id.btn_login);
btnLogin.setOnClickListener(this);
initWebView();
}
/**
* Handle button click events<br />
* <br />
* Auto-created on 2016-07-28 11:43:37 by Android Layout Finder
* (http://www.buzzingandroid.com/tools/android-layout-finder)
*/
@Override
public void onClick(View v) {
if (v == btnLogin) {
// Handle clicks for btnLogin
login();
}
}
private void login() {
String numebr = etNumber.getText().toString().trim();
String password = etPassword.getText().toString().trim();
if (TextUtils.isEmpty(numebr) || TextUtils.isEmpty(password)) {
Toast.makeText(JavaAndJSActivity.this, "账号或者密码为空", Toast.LENGTH_SHORT).show();
} else {
//登录
login(numebr);
}
}
/**
* Java调用javaScript
*
* @param numebr
*/
private void login(String numebr) {
webView.loadUrl("javascript:javaCallJs(" + "'" + numebr + "'" + ")");
setContentView(webView);
}
private void initWebView() {
webView = new WebView(this);
WebSettings webSettings = webView.getSettings();
//设置支持javaScript脚步语言
webSettings.setJavaScriptEnabled(true);
//支持双击-前提是页面要支持才显示
// webSettings.setUseWideViewPort(true);
//支持缩放按钮-前提是页面要支持才显示
webSettings.setBuiltInZoomControls(true);
//设置客户端-不跳转到默认浏览器中
webView.setWebViewClient(new WebViewClient());
//设置支持js调用java
webView.addJavascriptInterface(new AndroidAndJSInterface(),"Android");
//加载网络资源
// webView.loadUrl("http://10.0.2.2:8080/assets/JavaAndJavaScriptCall.html"); //加载assets文件夹下的资源
webView.loadUrl("file:///android_asset/JavaAndJavaScriptCall.html");
//显示页面
// setContentView(webView);
}
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
findViews();
}
/**
* js可以调用该类的方法
*/
class AndroidAndJSInterface{
@JavascriptInterface
public void showToast(){
Toast.makeText(JavaAndJSActivity.this, "我被js调用了", Toast.LENGTH_SHORT).show();
}
}
}
JavaAndJavaScriptCall.html
<html>
<head>
<meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
<script type="text/javascript">
function javaCallJs(){
document.getElementById("content").innerHTML +=
"<br\>java调用了js无参函数";
}
function javaCallJs(arg){
document.getElementById("content").innerHTML =
("欢迎:"+arg );
}
function showDialog(){
alert("你好,我是来自javascript");
}
</script>
</head>
<body>
<div align="left" id="content"> 555</div>
<div align="right">光临</div>
<p><img src="http://atguigu.com/images/logo.gif"></p>
<input type="button" value="点击Android被调用" onclick="window.Android.showToast()" />
</body>
</html>
java和js互调 webview的更多相关文章
- webview Java与JS互调
Android调用JS:方法一 webView.loadUrl("javascript:show('"+info+"')"); Android调用JS:方法二 ...
- java和js互调 拨打电话
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/ ...
- java与js互调 调用系统播放器
<?xml version="1.0" encoding="utf-8"?> <RelativeLayout xmlns:android=&q ...
- Android WebView加载本地html并实现Java与JS交互
最近做的一个项目中,用到自定义地图,将自定义地图转换成html页面,现在需要做的是如何将本地的html加载到android中,并可以实现交互. 相关讲解: 其实webview加载资源的速度并不慢,但是 ...
- android混合开发,webview的java与js互操作
android原生应用,用webview加载应用中的网页,并且java代码与js代码可以互相操作. 这是混合开发的基石,最基本也最重要的东西,实验代码在这里. 概括说说—— java调js:调用web ...
- android webview js交互 第一节 (java和js交互)
转载请注明出处 挺帅的移动开发专栏 http://blog.csdn.net/wangtingshuai/article/details/8631835 在androi ...
- WebView与JS互调
在Android 4.2之后JS的注入需要加入注解 @javascriptInterface 1.Android 调用 JS 初始化WebView控件,开启该控件对JS的支持 调用loadUrl()方 ...
- flutter WebView flutter js 互调
通过webview 进行flutter 和js 的互调,页面可以放在其他网站 也可以放在本地,我这里放在本地进行测试. 1.引入webview_flutter: ^0.3.5+2 这个是官网推荐用的, ...
- 安卓中java和js如何交互
1.安卓中java和js如何交互 在Android上怎样实现JAVA和JS交互呢?Android的webview是基于webkit内核的,webview中集成了js与java互调的接口函数,通过add ...
随机推荐
- Android JNI&NDK编程小结及建议
前言 由于网上关于JNI/NDK相关的知识点介绍的比较零散而且不具备参照性,所以写了这篇JNI/NDK笔记,便于作为随时查阅的工具类型的文章,本文主要的介绍了在平时项目中常用的命令.JNI数据类型.签 ...
- Android性能优化第(三)篇---MAT比Menmery Monitor更强大
作者 LooperJing 2016.11.17 16:42* 字数 1687 阅读 1603评论 3喜欢 21 在Android性能优化第(一)篇---基本概念中讲了JAVA的四大引用,讲了一下GC ...
- dedecms 调取当前栏目的链接和 栏目名称
<a href="{dede:field name='typeurl' function=”GetTypeName(@me)”/}" target="_blank& ...
- linux中kill几个有用信号
kill用法 kill -signal PID 15 (SIGTERM) 正常方式杀死进程:(这种方式可能会存在一些问题:进程的子进程可能会无法终止,并继续系统资源) PID 或者 kill PID ...
- Andriod 自动化测试研究方向
前言 孔子曰:"工欲善其事,必先利其器",我来云:"工欲利其器,必先知其理".我们无论学习任何新事物,都要尽量做到"知其然知其所以然",对于 ...
- java -jar xxx.jar
之前用MyEclipse做了一个可执行jar,点击就可运行的. 今天突然不好用了,错误是: could not find the main class C:\123\abc.jar.Program w ...
- 微信小程序 - 对象转换成对象数组
后端传过来的一个个对象 {1,2,3,4},{1,3,5,},{1,3,5} 我们应该转化为数组对象 [{},{},{},{}] ,最后通过wx:for遍历到页面 示例图:
- hql小经验
hql如果查了子对象的属性,那么hql不允许子对象为空!
- [Flex][Adobe Flash Builder 4.6]谷歌浏览器(Chrome)下运行Flex程序的问题
今天刚开始学习Flex,发现用Chrome运行程序时会一片空白,上网查了相关资料后找到了解决方法: 打开Chrome,在地址栏输入:chrome://plugins/ 进入插件管理界面,查找Fla ...
- NoSQL数据库的分类