Android之Webview使用Java代码和JS相互调用

编程入门 行业动态 更新时间:2024-10-23 13:32:44

Android之Webview使用Java<a href=https://www.elefans.com/category/jswz/34/1771412.html style=代码和JS相互调用"/>

Android之Webview使用Java代码和JS相互调用

本文主要记录一些零碎的东西

最近由于项目的需要,需要使用Java代码和JS相互调用,特此记录一点入门的东西,仅仅是入门而已

github: .git


话不多说,肯定是分为两块的

1.java 调用 js:

/*** method here will not load html ,only load js ,just js* will call back in {@link android.webkit.WebChromeClient#onJsAlert(* android.webkit.WebView, java.lang.String, java.lang.String, android.webkit.JsResult)}* 在log 里可以查看  test is ok*/mWebView.loadUrl("javascript:" + JS_FUNCTION);//注入js函数
//        mWebView.loadUrl("javascript:" + initAssertJSToString("testJs.js"));// read from file is also okmWebView.loadUrl("javascript:jsFun("+"I am param"+")");//调用js函数
//        mWebView.loadUrl("javascript:justTest("+TOP_SID+","+SUB_SID+")");// double param is also ok
这里使用webview , 其实没有必要加载一个html 文件,然后在html 文件里运行js,可以直接注入一段 js 代码,然后调用

本案例使用的就是这样的方式,webveiw其实没有显示任何东西

final static String JS_FUNCTION ="function jsFun(msg) {\n" +"          alert(\"jsFun...\" + msg); " +"           }";

2.js 调用 java:

/*** js ---调用---> java  test is ok*/mWebView.addJavascriptInterface(new JSBridge(),"slack");mWebView.loadUrl("file:///android_asset/index.html");// loadUrl ok

需要用到一个注解@JavascriptInterface

本地接口类

public class JSBridge {@JavascriptInterfacepublic void jsMessage(String message) {Log.i(TAG, "jsMessage" + message);Toast.makeText(MainActivity.this,message,Toast.LENGTH_SHORT).show();}}

本地 assert 下 的 index.html

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" ".dtd">
<html>
<head><meta http-equiv="Content-Type" cont

更多推荐

Android之Webview使用Java代码和JS相互调用

本文发布于:2024-02-27 05:53:55,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1705426.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:代码   Webview   Android   JS   Java

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!