Android WebView通信
来源:互联网 发布:淘宝店促销价怎么设置 编辑:程序博客网 时间:2024/06/11 02:26
web方面
代码如下
<!DOCTYPE html><html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>Android WebView Test</title><script type="text/javascript" src="http://lib.sinaapp.com/js/jquery/1.7.2/jquery.min.js"></script><script> function toClient() { var order = $("#val").val(); alert(order) } function getInfoFromAndroid(){ window.fover.clickonAndroid(); } function fromClinet(str) { $("#fromclient").text("iemi :" + str.iemi + " wifiMac : " + str.wifiMac + " phoneName :" + str.phoneName + " androidVersion :" + str.androidVersion); }</script></head><body>Android WebView传递数据Demo<br/><input type="submit" value="从Android获取信息" onclick="getInfoFromAndroid()"/><br/>显示返回:<label id="fromclient"></label><br/>输入一个字符串:<br/><input id="val"/><input type="submit" value="点击提交给客户端" onclick="toClient()"/><br/></body></html>
ANDROID 部分代码
package cn.fover.webdemo;import android.content.Context;import android.content.SharedPreferences;import android.net.wifi.WifiManager;import android.os.Build;import android.os.Bundle;import android.support.v7.app.AppCompatActivity;import android.telephony.TelephonyManager;import android.text.TextUtils;import android.view.View;import android.webkit.JavascriptInterface;import android.webkit.JsResult;import android.webkit.WebChromeClient;import android.webkit.WebSettings;import android.webkit.WebView;import android.widget.EditText;import android.widget.TextView;import android.widget.Toast;import com.google.gson.Gson;import org.w3c.dom.Text;public class MainActivity extends AppCompatActivity {private WebView mWebView;private String mJson;private EditText mEdit;@Overrideprotected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); preInfo(); mEdit = (EditText) findViewById(R.id.hostName); String host = getSharedPreferences("Fover", Context.MODE_PRIVATE).getString("host", ""); mEdit.setText(host); mWebView = (WebView) findViewById(R.id.webView); WebSettings setting = mWebView.getSettings(); setting.setJavaScriptEnabled(true); mWebView.setScrollBarStyle(WebView.SCROLLBARS_OUTSIDE_OVERLAY); WebChromeClient myClient = new WebChromeClient() { @Override public boolean onJsAlert(WebView view, String url, String message, JsResult result) { result.confirm(); Toast.makeText(MainActivity.this, message, Toast.LENGTH_SHORT).show(); return true; } }; mWebView.addJavascriptInterface(new AndroidClick(), "fover"); mWebView.setWebChromeClient(myClient); findViewById(R.id.button).setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { String host = mEdit.getText().toString(); if (TextUtils.isEmpty(host)) { Toast.makeText(MainActivity.this, "请输入服务器地址", Toast.LENGTH_SHORT).show(); } else { host = "http://" + host; mWebView.loadUrl(host); MainActivity.this.getSharedPreferences("Fover", Context.MODE_PRIVATE).edit().putString("host", host.substring(7, host.length())).commit(); } } });}/** * 获取各种信息 */private void preInfo() {// 获取IEMI String imei = ((TelephonyManager) getSystemService(TELEPHONY_SERVICE)) .getDeviceId();// 获取WIFI的mac地址 WifiManager wifi = (WifiManager) getSystemService(Context.WIFI_SERVICE); String wifiMac = wifi.getConnectionInfo().getMacAddress();// 获取Android版本 String androidModel = Build.MODEL; String sdk = Build.VERSION.SDK; InfoEntity entity = new InfoEntity(imei, wifiMac, androidModel, sdk); mJson = new Gson().toJson(entity); System.out.println(mJson);}private class AndroidClick { @JavascriptInterface public void clickonAndroid() { mWebView.post(new Runnable() { @Override public void run() { mWebView.loadUrl("javascript:fromClinet(" + mJson + ")"); } }); }}}
说明
- 从web给Android发送消息
从web给Android发送消息主要使用alert方法,直接alert(需要传递的数据),Android端重写WebChromeClient的onJsAlert方法拦截事件,即可。
- 从Android发送给webview
需要点击网页上的按钮,然后触发AndroidClick的clickonAndroid方法,当然这个方法名是可以自己定义的,在clickonAndroid的方法中使用webview的loadUrl指定js的方法,并传入参数,传入的参数可以是一个json格式的文件,在js访问的时候可以直接使用obj.xxx这样简单的方式访问,非常方便。
1 0
- Android WebView通信
- Android中WebView和JavaScript通信
- Android WebView Java与Js通信
- Android WebView Java和JS通信
- Android WebView与js交互通信
- Android通信方式(一)————WebView
- unity3d for android WebView和JavaScript进行简单通信
- Android WebView js 与 java 之间相互通信
- Android WebView 中 JS 与Java之间通信
- WebView Cookie 通信
- ReactNative WebView组件通信
- reactnative 与webview通信
- ReactNative WebView组件通信
- 【Android】【Webview】WebView 简介
- android WebView
- Android WebView
- Android WebView
- android webview
- Mongodb学习笔记速记(二)
- Java基础编程之打印水仙花数
- 偷取百度音乐。。。
- S中使用sort结合localeCompare实现中文排序实例
- oracle 表空间
- Android WebView通信
- android的四种设计模式
- SHFileOperation出错的问题 重命名错误 只能重命名一个文件
- 10个帮程序员减压放松的网站
- JavaScript基础——函数表达式
- 如何在win cmd中进行电脑重启
- Latex排版全解
- https 例子
- 鼠标右击菜单