Android与HTML JavaScript交互
16lz
2021-01-23
HTML(JavaScript)与Android的webView控件相互通信,今天仔细研究才发现,这两者相互调用是非常简单的,只需要在Android里面调用JavaScript的方法,以及在JavaScript里面调用Android里面的方法即可完成,思路很简单,具体执行起来其实也并不复杂,下面是具体的代码,以及代码注释:
HTML代码
Android端与HTML相互通信 Android与HTML相互通信示例
<--!h2标签说明-->Android消息
在此处输入想要发送到Android端的信息
在这里设置一个文本框,用来获取用户输入的文字消息然后应用到js里面进操作
//导包略过public class MainActivity extends Activity { private WebView webView; private EditText editText; private Button button; private TextView textView; //定义好所需要的控件 @SuppressLint("JavascriptInterface") //定义好SuppressLint("JavascriptInterface") @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); ByID(); //设置支持JavaScript语言,让WebView支持javascript的动作 webView.getSettings().setJavaScriptEnabled(true); //交互对象的添加,传入对象在html5界面的javascript中获取,该对象用于两者之间的交互。question,给JavaScript添加一个与之交互的接口,传入一个对象和该对象的名字,在html5端根据这个名字得到对象 //提供一个供h5交互的对象,并给对象标记个名字供js识别 webView.addJavascriptInterface( mUser= new User(), "user"); //自定义实现alert //要加载的页面 webView.loadUrl("http://10.0.2.2:63343/WWW/PHPwithHTML/test.html"); webView.setWebViewClient(new zzaWebViewClient()); }public void ByID(){ //关联ID webView = findViewById(R.id.webView); textView=findViewById(R.id.textView); button=findViewById(R.id.button); editText=findViewById(R.id.editText);} public class User { //在user类里面写两个方法供js调用 //一定要在每一个方法前面加入 @JavascriptInterface private String username; @JavascriptInterface public String getUsername() { //此方法直接返回AndroidUI页面里面的文本框的值 return editText.getText().toString(); } @JavascriptInterface public void setUsername(String username) { this.username = username; //将js里面传过来的值直接添加到UI页面的文本信息之中 textView.append(username+"\n"); Log.i("TAG", username); } } class zzaWebViewClient extends WebViewClient{ //不重新打开系统的浏览器加载网页 @Override public boolean shouldOverrideUrlLoading(WebView view, String url) { view.loadUrl(url); return true; } }}
效果图:
JavaScript---->Android
Android----->JavaScript
更多相关文章
- 【Android自助餐】Handler消息机制完全解析(二)MessageQueue的队列
- Android中String资源文件的format方法
- Android消息通信之无所不能的第三方开源项目EventBus
- android XMl 解析神奇xstream 四: 将复杂的xml文件解析为对象
- Android应用程序键盘(Keyboard)消息处理机制分析
- android性能测试方法
- 【Android开机启动Activity或者Service方法】
- Android消息推送实现