1.布局

<?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="net.pericles.andoidab.muiaps.MainActivity"> <WebView
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:id="@+id/wevsss"></WebView>
</RelativeLayout>

2.权限

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="net.pericles.andoidab.muiaps"> <!--添加权限-->
<uses-permission android:name="android.permission.INTERNET"></uses-permission>
<application
android:allowBackup="true"
android:icon="@mipmap/ic_launcher"
android:label="@string/app_name"
android:supportsRtl="true"
android:theme="@style/AppTheme">
<activity android:name=".MainActivity">
<intent-filter>
<action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
</application> </manifest>

3.本地文件夹创建和调用

AS工程下默认没有assets文件夹,你要自己创建,创建方式为:依次展开工程下的app文件夹 ->src文件夹,然后选中main文件夹,右键选择New -> Folder -> Assets Folder,这样可就新建了assets文件夹了

//本地加载html
webViews.loadUrl("file:///android_asset/www/index.html");

4.java代码及js交互

  • package com.example.webview_workflowy;
  • import android.app.Activity;
  • import android.content.Intent;
  • import android.net.Uri;
  • import android.os.Bundle;
  • import android.webkit.WebView;
  • import android.widget.Toast;
  • public class MainActivity extends Activity {
  • private WebView webView;
  • public void onCreate(Bundle savedInstanceState) {
  • super.onCreate(savedInstanceState);
  • setContentView(R.layout.activity_main);
  • //加载页面
  • webView = (WebView) findViewById(R.id.webview);
  • //允许JavaScript执行
  • webView.getSettings().setJavaScriptEnabled(true);
  • //找到Html文件,也可以用网络上的文件
  • webViews.loadUrl("file:///android_asset/www/index.html");

    // 添加一个对象, 让JS可以访问该对象的方法, 该对象中可以调用JS中的方法

  • webView.addJavascriptInterface(new Contact(), "contact");
  • }
  • private final class Contact {
  • //JavaScript调用此方法拨打电话
  • public void call(String phone) {
  • //            startActivity(new Intent(Intent.ACTION_CALL, Uri.parse("tel:" + phone)));
  • Toast.makeText(MainActivity.this, phone, Toast.LENGTH_LONG).show();
  • }
  • //Html调用此方法传递数据
  • public void showcontacts() {
  • String json = "[{\"name\":\"zxx\", \"amount\":\"9999999\", \"phone\":\"18600012345\"}]";
  • // 调用JS中的方法
  • webView.loadUrl("javascript:show('" + json + "')");
  • }
  • public void toast(String str){
  • Toast.makeText(MainActivity.this, "aaaaaaaaaaaa  --- " + str, Toast.LENGTH_LONG).show();
  • }
  • }
  • }

5.html

  1. <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
  2. <html>
  3. <head>
  4. <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
  5. <title>Insert title here</title>
  6. <script type="text/javascript">
  7. function show(jsondata){
  8. var jsonobjs = eval(jsondata);
  9. var table = document.getElementById("personTable");
  10. for(var y=0; y<jsonobjs.length; y++){
  11. var tr = table.insertRow(table.rows.length);
  12. var td1 = tr.insertCell(0);
  13. var td2 = tr.insertCell(1);
  14. td2.align = "center";
  15. var td3 = tr.insertCell(2);
  16. td3.align = "center";
  17. td1.innerHTML = jsonobjs[y].name;
  18. td2.innerHTML = jsonobjs[y].amount;
  19. td3.innerHTML = "<a href='javascript:contact.call(\""+ jsonobjs[y].phone+ "\")'>"+ jsonobjs[y].phone+ "</a>";
  20. }
  21. }
  22. </script>
  23. </head>
  24. <body onload="javascript:contact.showcontacts()">
  25. <button id="button" onclick = "javascript:contact.toast('123')">haha</button>
  26. <table border="0" width="100%" id="personTable" cellspacing="0">
  27. <tr>
  28. <td width="30%">姓名</td>
  29. <td width="30%" align="center">存款</td>
  30. <td align="center">电话</td>
  31. </tr>
  32. </table>
  33. </body>
  34. </html>

android webview 加载本地html 实现 与 java 之间的相互响应的更多相关文章

  1. Android WebView加载本地html并实现Java与JS交互

    最近做的一个项目中,用到自定义地图,将自定义地图转换成html页面,现在需要做的是如何将本地的html加载到android中,并可以实现交互. 相关讲解: 其实webview加载资源的速度并不慢,但是 ...

  2. WebView加载本地Html文件并实现点击效果

    Webview是用来与前端交互的纽,可以加载本地Html文件,和网页并实现交互的功能. WebView通过WebSetting可以使用Android原生的JavascriptInterface来进行j ...

  3. WebView加载本地html、js文件常见问题及解决办法

    声明:基于android studio平台,php语言搭建服务器 目录: 一.JavaScript脚本语言没有反应 二.alert无法弹出 三.html页面之间不能跳转 四.屏幕缩放没有达到预期效果 ...

  4. webView 加载本地文件 - html/htm pdf docx tx

    - (void)viewDidLoad { [super viewDidLoad]; [self setupUI]; NSString *path = [[NSBundle mainBundle] p ...

  5. iOS WebView 加载本地资源(图片,文件等)

    https://www.cnblogs.com/dhui69/p/5596917.html iOS WebView 加载本地资源(图片,文件等) NSString *path = [[NSBundle ...

  6. 转:Android Webview 加载外部html时选择加载本地的js,css等资源文件

    原文地址:http://m.blog.csdn.net/blog/qduningning/43196819 在使用WebView加载网页的时候,有一些固定的资源文件如js的jquery包,css,图片 ...

  7. Android WebView 加载网页

    通过Android 中 WebView 控件加载HTML5 页面,这是实现Android 混合开发的基础. 选择加载的网页可以是本地,也可用使远程的.需要添加访问互联网的权限:<uses-per ...

  8. android ImageLoader加载本地图片的工具类

    import android.widget.ImageView; import com.nostra13.universalimageloader.core.ImageLoader; /** * 异步 ...

  9. 安卓 WebView加载本地图片时居中显示

    在一个项目中使用WebView显示gif图片(自定义的View无法放大gif),当图片过小时只在左侧显示,经过研究发现无论设置android:layout_gravity="center_h ...

随机推荐

  1. linux命令行翻页

    在linux上面执行命令,若命令太多屏幕显示不完,通过Shift+pageup/pageDown来查看. putty连接linux后执行就不存在这个问题.

  2. [bug]The underlying connection was closed: Could not establish trust relationship for the SSL/TLS secure channel.

    写在前面 在模拟请求的时候,如果url为https的,会报这个错误.大概错误就是:基础连接已关闭:无法建立信任关系的SSL / TLS的安全通道. The underlying connection ...

  3. WCF 与其它技术的比较

    以下特性WCF都支持 特性 Web Service .Net Remoting Enterprise Services WSE(WS Enhancements) MSMQ 具有互操作性的Web服务 支 ...

  4. github 多账户配置

    一直以来git都是自己业余玩玩,虽然也在github上有个账户,也只是小打小闹,弄了若干个测试仓库.最近公司要从TFS迁移到Gerrit,也算是正式用git了.不过遇到的一个问题就是账户问题,一个个人 ...

  5. leetcode题解:Search for a Range (已排序数组范围查找)

    题目: Given a sorted array of integers, find the starting and ending position of a given target value. ...

  6. spring boot 引用外部配置文件

    java -jar xx.jar -Dspring.config.location=/data/apps/xx/application-prod.properties

  7. 2017.5.24 在intelliJ IDEA 中生成war包

    1.勾选Build on make file -> project structure -> Artifacts 2.compile module "***" 选择项目 ...

  8. [Other] An Overview of Arrays and Memory

    One integer takes 32bit in memory, 1 byte = 8bits, therefore one integer takes 4 bytes. Now let's as ...

  9. 8.使用JPA保存数据【从零开始学Spring Boot】

    转载:http://blog.csdn.net/linxingliang/article/details/51636989 在看这一篇文档的话,需要先配置好JPA – hibernate. 总体步骤: ...

  10. OSGI中的service依赖关系管理

    众所周知.对于高动态高可扩展的应用,OSGI是一个很好的平台.可是.也因此添加了复杂性.开发中对service的依赖变得复杂. 这也是service的关系管理成为OSGI中一个很重要的部分,我们来看看 ...