HTML/JS 调用android方法,开发 Android。

简介: 初次尝试用HTML/JS开发Android。 由于业务需求和大趋势导致,目前纵观很多APP。很多都是用H5+native的方式去开发。关于wepApp和nativeApp它们之前的是是非非就不说了。 下面是利用H5应该是JS去调用本地Android的代码。 不是什么特别高深的东西。 第一布局: 1 <RelativeLayou

初次尝试用HTML/JS开发Android。

由于业务需求和大趋势导致,目前纵观很多APP。很多都是用H5+native的方式去开发。关于wepApp和nativeApp它们之前的是是非非就不说了。

下面是利用H5应该是JS去调用本地Android的代码。

不是什么特别高深的东西。

第一布局:

复制代码
 1 <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
 2     xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent"
 3     android:layout_height="match_parent" tools:context=".MainActivity">
 4 
 5    <WebView
 6        android:id="@+id/wv_web"
 7        android:layout_width="match_parent"
 8        android:layout_height="match_parent"></WebView>
 9 
10 </RelativeLayout>
复制代码

第二native代码。

复制代码
 setContentView(R.layout.activity_main);
        webView = (WebView) findViewById(R.id.wv_web);
        webView.loadUrl("file:///android_res/raw/test.html");
        webView.setVerticalScrollBarEnabled(false);
        webView.setHorizontalScrollBarEnabled(false);
        webView.getSettings().setJavaScriptEnabled(true); //加上这句话才能使用javascript方法;
        webView.addJavascriptInterface(new PayJavaScriptInterface(), "demo");
复制代码
复制代码
 1  final class PayJavaScriptInterface {
 2         PayJavaScriptInterface() {
 3         }
 4         @JavascriptInterface
 5         public String getUserinfo()  {
 6             return "getUserinfo";
 7         }
 8 
 9 
10         @JavascriptInterface
11         public boolean needLogin()  {
12             return true;
13         }
14         @JavascriptInterface
15         public void haha()  {
16             Toast.makeText(MainActivity.this,"hahaa",Toast.LENGTH_SHORT).show();
17             Log.e("sssssssssssssssssssssss","sdfddddddddd");
18         }
19     }
复制代码

第三HTML里面的代码:

test.html

复制代码
<!DOCTYPE HTML>
<html>

<head>

    <meta charset="UTF-8">

    <title>交互Demo</title>

    <meta content="initial-scale=1.0,user-scalable=no,maximum-scale=1,width=device-width" name="viewport">

</head>



<body>

getUserinfo:

<div id="userinfo"></div>

<input value="立即报名" type="button" onClick="baoming();" /><br>



<script>

/*var rs=window.om.getUserinfo();

document.getElementById('userinfo').innerHTML=rs;*/

var rs=window.demo.getUserinfo();

var obj = eval ("(" + rs + ")");

if(obj.status){

document.getElementById('userinfo').innerHTML=obj.data.nickname;

}

function baoming(){

if(window.demo.needLogin()){

location.href='test1.html';

}

}

</script>

</body>

</html>
复制代码

test1.html代码:

复制代码
 1 <!DOCTYPE HTML>
 2 <html>
 3 <body>
 4 <input value="立即报名" type="button" onClick="haha();"/>
 5 
 6 </body>
 7 
 8 <script>
 9 
10 function haha(){
11 
12 window.demo.haha();
13 
14 }
15 
16 </script>
17 
18 </html>
复制代码

这样就可以实现了。

需要注意的点:

1.这里我加载的是本地app里面的html,所以使用的方式是

   webView.loadUrl("file:///android_res/raw/test.html");

关于加载网页的可以直接,写上url,而我的html是的放在raw目录里面。使用的AndroidStudio。

2.设置了下webView的相关配置信息。具体代码有备注,或者可以查阅其他相关资料。

3.在本地写:

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

其中第一个参数就是我下面写的一个类,第二个参数是在HTML里面的JS需要使用的。注意,在HTML里面我window后面跟的demo和这里是一样的,也必须保持一致才能成功调用。


然后就是你在JS里面调用了。这样应该就ok了。今天还继续研究下这玩意。


突然感觉不是特别清晰,这样说吧,这个demo这个就代码我们第一个参数new出的对象,然后我们在JS里面写window.demo,代表我PayJavaScriptInterface这个对象的实例,也就是我在第一个参数这边new出来的。然后再window.demo.haha();其实就是调用了PayJavaScriptInterface里面的haha的方法。然后就执行haha里面的代码。

这样表达应该还算清晰!
目录
相关文章
|
9月前
|
移动开发 前端开发 JavaScript
征信报告修改器,征信报告生成器,制作软件无痕修改软件【js+html+css】
本项目为信用评分模拟器教学工具,采用HTML5实现,仅供学习参考。核心功能通过JavaScript构建,包含虚拟数据生成、权重分配及信用因素分析(如还款记录、信用使用率等)。
|
9月前
|
前端开发 JavaScript
个人征信电子版无痕修改, 个人信用报告pdf修改,js+html+css即可实现【仅供学习用途】
本代码展示了一个信用知识学习系统的前端实现,包含评分计算、因素分析和建议生成功能。所有数据均为模拟生成
|
9月前
|
存储 前端开发 安全
病历单生成器在线制作,病历单生成器app,HTML+CSS+JS恶搞工具
本项目为医疗病历模拟生成器,旨在为医学教学和软件开发测试提供数据支持,严格遵守《医疗机构病历管理规定》。
|
9月前
|
存储 前端开发 JavaScript
仿真银行app下载安装, 银行卡虚拟余额制作app,用html+css+js实现逼真娱乐工具
这是一个简单的银行账户模拟器项目,用于学习前端开发基础。用户可进行存款、取款操作,所有数据存储于浏览器内存中
|
9月前
|
前端开发 容器
处方单图片生成器, 处方单在线制作免费,js+css+html恶搞神器
这是一个电子处方模拟生成系统,使用html2canvas库实现图片导出功能。系统生成的处方单包含多重防伪标识,并明确标注为模拟数据,仅供学习
|
9月前
|
前端开发
个人征信PDF无痕修改软件,个人征信模板可编辑,个人征信报告p图神器【js+html+css仅供学习用途】
这是一款信用知识学习系统,旨在帮助用户了解征信基本概念、信用评分计算原理及信用行为影响。系统通过模拟数据生成信用报告,涵盖还款记录
|
9月前
|
前端开发 JavaScript 容器
制作b超单生成器, 假怀孕b超单图片制作, p图医院证明【css+html+js装逼恶搞神器】
本资源提供一个适合用于熟人之间恶搞的工具,效果逼真,仅供学习参考与娱乐。包含前端技术学习要点:语义化布局、响应式设计、Flexbox、图片自适应
|
9月前
|
前端开发
医院检查单子p图软件,在线制作仿真病历,js+css+html装逼神器
本示例展示如何用HTML/CSS创建医疗信息页面,内容仅供学习参考。页面模拟“阳光医院体检中心”场景,提供预约功能验证(如姓名、手机号、日期)。所有数据仅用于演示
|
JavaScript Android开发
Android菜鸟学习js笔记 一
一、var,const,let区别? var 变量,const 常量,let块级变量。
892 0
|
5月前
|
移动开发 前端开发 Android开发
【02】建立各项目录和页面标准化产品-vue+vite开发实战-做一个非常漂亮的APP下载落地页-支持PC和H5自适应提供安卓苹果鸿蒙下载和网页端访问-优雅草卓伊凡
【02】建立各项目录和页面标准化产品-vue+vite开发实战-做一个非常漂亮的APP下载落地页-支持PC和H5自适应提供安卓苹果鸿蒙下载和网页端访问-优雅草卓伊凡
875 12
【02】建立各项目录和页面标准化产品-vue+vite开发实战-做一个非常漂亮的APP下载落地页-支持PC和H5自适应提供安卓苹果鸿蒙下载和网页端访问-优雅草卓伊凡