第一步:

在项目中的assets目录中新建text.html

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">

<html>

<head>

<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">

<title>Insert title here</title>

<script type="text/javascript">

function showInfo(content){

document.getElementById("countent").innerHTML=

"这是我的javascript调用. 这是:"+content;

}

</script>

</head>

<body>

<h1>测试</h1><br>

<!--

demo.startPhone(456)是调用android中的方法

demo对应android代码webView.addJavascriptInterface(new JavaObject(), "demo");中的demo

startPhone对应android代码中类JavaObject的startPhone()的方法

-->

<input type="button" onclick="javascript:demo.startPhone(456)" value="显示数据">

<p id="countent">html原始数据</p>

</body>

</html>

第二步:

写MainActivity.java类

package com.su.webkit.activity;

import android.annotation.SuppressLint;

import android.app.Activity;

import android.content.Intent;

import android.net.Uri;

import android.os.Bundle;

import android.view.Menu;

import android.view.View;

import android.webkit.WebSettings;

import android.webkit.WebView;

public class MainActivity extends Activity {

private WebView webView;

@SuppressLint("SetJavaScriptEnabled")

@Override

protected void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.activity_main);

webView = (WebView)findViewById(R.id.web);

//设置javascript和android的能交互

WebSettings setting=webView.getSettings();

setting.setJavaScriptEnabled(true);

//设置给javascript调用android的方法

webView.addJavascriptInterface(new JavaObject(), "demo");

//加载html

webView.loadUrl("file:///android_asset/text.html");

}

//调用javascript里的方法showInfo();

public void showJavascript(View view){

webView.loadUrl("javascript:showInfo('activity传过来的数据')");

}

class JavaObject{

/*

在javascript调用的方法

*/

public void startPhone(String num){

System.out.println("ad");

Toast.makeText(MainActivity.this,num, Toast.LENGTH_LONG);

}

}

@Override

public boolean onCreateOptionsMenu(Menu menu) {

// Inflate the menu; this adds items to the action bar if it is present.

getMenuInflater().inflate(R.menu.main, menu);

return true;

}

}

第三步:

运行项目



更多相关文章

  1. Android(安卓)Studio导入项目错误之Gradle版本过高
  2. SQLiteException: no such column:好
  3. android中引入okhttp
  4. Android获取联系人头像的方法
  5. WKWebView的JS与Native的交互,适配iOS和andriod的HTML代码
  6. android 异步加载图片缩略图
  7. aar文件的libs有其他jar文件,使用时的注意点
  8. Android基于自带的DownloadManager实现下载功能示例

随机推荐

  1. [elasticsearch] Index索引介绍
  2. shell脚本之正则表达式
  3. Eclipse导入MyEclipse项目时,无法识别为we
  4. 网站使用云服务器有什么好处?
  5. centos 7中的文本处理工具sed命令的使用
  6. iOS 拍照录频画质问题相关
  7. shell脚本之awk工具的使用
  8. chrome查看网站字符集编码的方法(不需要安
  9. JavaScript学习之购物车全选、自动计算
  10. VSCODE,一款免费好用的源代码编辑器