Android 与H5之间的js交互
之前项目做过一些Android和Html5之间js交互方面的东西,今天有时间就总结一下:
一、为什么要进行js交互:
为了方便原生开发和Html之间数据传递,在静态页面的情况下可以改变原生开发的页面;
二、如何进行js交互:
(一)Android端调用H5页面
在Android端主要使用WebView来进行网页的加载,设置属性
// 获取WebSetting对象 WebSettings webSettings = webview.getSettings(); // 设置支持javascript webSettings.setJavaScriptEnabled(true); // 将Android里面定义的类对象AndroidJs暴露给javascript
webview.addJavascriptInterface(new AndroidJs(MainActivity.this), "AndroidJs");
调用方式:其中doAlert为H5页面的方法
webview.loadUrl("javascript:doAlert()");
(二)H5端调用Android页面
H5端代码:
<input type="button" value="打招呼" onclick="AndroidJs.showToast()"/> <input type="button" value="图书列表" onclick="AndroidJs.showList()"/>
Android端代码:
public class AndroidJs { private Context mContext; public AndroidJs(Context context) { this.mContext = context; } @JavascriptInterface public void showList() { new AlertDialog.Builder(mContext) .setTitle("图书列表") .setIcon(R.mipmap.ic_launcher) .setItems( new String[]{"疯狂java讲义", "疯狂Android讲义", "轻量级java EE开发"}, null) .setPositiveButton("确定", null).create().show(); } @JavascriptInterface public void showToast() { Toast.makeText(mContext, "hello", Toast.LENGTH_LONG).show(); } }
注:AndroidJs是连接Android与Html的桥梁标识,也是一个进行数据交互的类;
注:这里面的方法必须是共有的,类名与标识保持一致;
以上就是简单的js交互流程,备注的地方要特别注意,请多多指教
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列:基于图像分类模型对图像进行分类
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 25岁的心里话
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 零经验选手,Compose 一天开发一款小游戏!
· 通过 API 将Deepseek响应流式内容输出到前端
· 因为Apifox不支持离线,我果断选择了Apipost!