JS和javaScript相互调用
2016-06-07 17:32
731 查看
Java和JavaScript相互调用
照着写一遍估计你就能明白了,代码不要只看,必须自己去写
java代码
html代码
照着写一遍估计你就能明白了,代码不要只看,必须自己去写
java代码
package com.smart.webview; import android.annotation.SuppressLint; import android.app.Activity; import android.os.Bundle; import android.view.KeyEvent; import android.view.View; import android.webkit.JavascriptInterface; import android.webkit.WebChromeClient; import android.webkit.WebSettings; import android.webkit.WebView; import android.widget.Toast; /** * Created by gaomin on 2016/6/7. */ public class JSInvokingJavaActivity2 extends Activity{ private WebView mWebView = null; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); this.setContentView(R.layout.activity_jsinvoking_java); mWebView = (WebView)findViewById(R.id.webView); showWebView(); } @SuppressLint("SetJavaScriptEnabled") private void showWebView() { mWebView.requestFocus(); mWebView.setWebChromeClient(new WebChromeClient(){ @Override public void onProgressChanged(WebView view, int newProgress) { super.onProgressChanged(view, newProgress); JSInvokingJavaActivity2.this.setProgress(newProgress); JSInvokingJavaActivity2.this.setTitle("Loding...."); if(newProgress>=80){ JSInvokingJavaActivity2.this.setTitle("test JSInvokeJava"); } } }); mWebView.setOnKeyListener(new View.OnKeyListener() { @Override public boolean onKey(View v, int keyCode, KeyEvent event) { if(event.getAction()==KeyEvent.KEYCODE_BACK&&mWebView.canGoBack()){ } return false; } }); WebSettings webSetting = mWebView.getSettings(); webSetting.setJavaScriptEnabled(true); webSetting.setDefaultTextEncodingName("UTF-8"); class JsObject{ //js调用java代码 @JavascriptInterface public String toString(){ return "gaomin"; } @JavascriptInterface public String HtmlcallJava(){ return "Html Call Java"; } @JavascriptInterface public String HtmlcallJava2(final String Param){ return "Html Call Java"+Param; } //java调用js代码 @JavascriptInterface public void JavacallHtml(){ runOnUiThread(new Runnable() { @Override public void run() { mWebView.loadUrl("javascript: showFromHtml()"); Toast.makeText(JSInvokingJavaActivity2.this, "clickBtn", Toast.LENGTH_SHORT).show(); } }); } @JavascriptInterface public void JavacallHtml2(){ runOnUiThread(new Runnable() { @Override public void run() { mWebView.loadUrl("javascript: showFromHtml2(123)"); Toast.makeText(JSInvokingJavaActivity2.this, "clickBtn", Toast.LENGTH_SHORT).show(); } }); } } mWebView.addJavascriptInterface(new JsObject(),"injiectObject"); mWebView.loadData("file:///android_asset/index.html","text/html",null); // mWebView.loadUrl("javascript: alert(injectedObject.toString())"); mWebView.addJavascriptInterface(new JsObject(),"jsObj"); mWebView.loadUrl("file:///android_asset/index.html"); } }
html代码
<html> <script type="text/javascript" language="javascript"> function showHtmlcallJava(){ var str = window.jsObj.HtmlcallJava(); alert(str); } function showHtmlcallJava2(){ var str = window.jsObj.HtmlcallJava2("66666666666"); alert(str); } function showFromHtml(){ document.getElementById("id_input").value = "Java call Html"; } function showFromHtml2(param ){ document.getElementById("id_input2").value = "Java call Html : " + param; } </script> </head> <body> <br> <br> <br> <input type="button" value="HtmlcallJava" onclick="showHtmlcallJava()"/> <br> <input type="button" value="HtmlcallJava2" onclick="showHtmlcallJava2()"/> <br> <br> <br> <br> <input id="id_input" style="width: 90%" type="text" value="null"/> <br> <input type="button" value="JavacallHtml" onclick="window.jsObj.JavacallHtml()"/> <br> <br> <br> <input id="id_input2" style="width: 90%" type="text" value="null"/> <br> <input type="button" value="JavacallHtml2" onclick="window.jsObj.JavacallHtml2()"/> </body> </html>
相关文章推荐
- JQuery1——基础($对象,选择器,对象转换)
- java对世界各个时区(TimeZone)的通用转换处理方法(转载)
- java-注解annotation
- java-模拟tomcat服务器
- java-用HttpURLConnection发送Http请求.
- java-WEB中的监听器Lisener
- Android IPC进程间通讯机制
- Android学习笔记(二九):嵌入浏览器
- Android Native 绘图方法
- Android java 与 javascript互访(相互调用)的方法例子
- 介绍一款信息管理系统的开源框架---jeecg
- 聚类算法之kmeans算法java版本
- java实现 PageRank算法
- PropertyChangeListener简单理解
- JavaScript演示排序算法
- c++11 + SDL2 + ffmpeg +OpenAL + java = Android播放器
- 插入排序