Android 之webview加载html 和js做交互
2017-01-18 09:47
435 查看
话不多说:先撸一个html:名字叫index.html,这个html放到哪里,大家应该都知道吧,哈哈!!!!
注意下面这段代码:在html中有这样一段代码:它是用来标识android 和ios交互事件
Maintivity:
网络访问权限:网络访问权限:网络访问权限:重要事说三遍
效果图:源码就不附上了,直接copy就可以的。。。。
<!DOCTYPE html> <script type="text/javascript"> function buttonClick(){ var u = navigator.userAgent, app = navigator.appVersion; var isAndroid = u.indexOf('Android') > -1 || u.indexOf('Linux') > -1; //android终端或者uc浏览器 var isIOS = !!u.match(/\(i[^;]+;( U;)? CPU.+Mac OS X/); //ios终端 if (isAndroid) { window.object.back(); } else if(isIOS) { iback(); } } </script> <html lang="en"> <head> <meta charset="utf-8"> <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1"> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <meta name="description" content=""> <meta name="viewport" content="width=device-width; initial-scale=1.0"> </head> <button id="hallo" onclick="buttonClick()"> 点击button</button> </body> </html>
注意下面这段代码:在html中有这样一段代码:它是用来标识android 和ios交互事件
var u = navigator.userAgent, app = navigator.appVersion; var isAndroid = u.indexOf('Android') > -1 || u.indexOf('Linux') > -1; //android终端或者uc浏览器 var isIOS = !!u.match(/\(i[^;]+;( U;)? CPU.+Mac OS X/); //ios终端 if (isAndroid) { window.object.back(); } else if(isIOS) { iback(); }
Maintivity:
package com.example.jsandroiddemo; import android.app.Activity; import android.graphics.Bitmap; import android.net.http.SslError; import android.os.Bundle; import android.webkit.JavascriptInterface; import android.webkit.SslErrorHandler; import android.webkit.WebChromeClient; import android.webkit.WebView; import android.webkit.WebViewClient; import android.widget.Toast; public class MainActivity extends Activity { private WebView webview; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); webview=(WebView) findViewById(R.id.webview); webview.getSettings().setBuiltInZoomControls(true); //显示放大缩小 controler webview.getSettings().setSupportZoom(true); //可以缩放 //屏幕自适应 webview.getSettings().setUseWideViewPort(true); webview.getSettings().setLoadWithOverviewMode(true); //加载本地html webview.loadUrl("file:///android_asset/index.html"); webview.getSettings().setJavaScriptEnabled(true); //js和android做交互 webview.addJavascriptInterface(new Object(), "object"); webview.setWebChromeClient(new WebChromeClient()); webview.setWebViewClient(new WebViewClient() { @Override public void onReceivedSslError(WebView view, SslErrorHandler handler, SslError error) { // super.onReceivedSslError(view, handler, error); // TODO Auto-generated method stub //允许https://的访问 //Android使用WebView加载https地址打不开的问题 小米 handler.proceed(); } @Override public void onPageFinished(WebView view, String url) { super.onPageFinished(view, url); //加载完成 // Toast.makeText(WebActivity.this, "加载完成", Toast.LENGTH_SHORT).show(); } @Override public void onPageStarted(WebView view, String url, Bitmap favicon) { super.onPageStarted(view, url, favicon); //加载开始 // Toast.makeText(WebActivity.this, "加载开始", Toast.LENGTH_SHORT).show(); } @Override public void onReceivedError(WebView view, int errorCode, String description, String failingUrl) { // TODO Auto-generated method stub super.onReceivedError(view, errorCode, description, failingUrl); //加载失败 // Toast.makeText(WebActivity.this, "加载失败", Toast.LENGTH_SHORT).show(); } }); } public class Object{ //写一个js调android的方法 //Android 4.2以上系统,通过在Java的远程方法上面声明 // @JavascriptInterface可以解决WebView漏洞。如下面代码: //@JavascriptInterface一定的加上 @JavascriptInterface public void back(){ Toast.makeText(MainActivity.this, "回调成功啦。。。", 1).show(); } } }
网络访问权限:网络访问权限:网络访问权限:重要事说三遍
<uses-permission android:name="android.permission.INTERNET" />
效果图:源码就不附上了,直接copy就可以的。。。。
相关文章推荐
- Android WebView使用全面解析(加载网络资源、本地HTML,JS交互)
- Android WebView加载本地html并实现Java与JS交互
- Android WebView使用全面解析(加载网络资源、本地HTML,JS交互)
- Android的webview加载本地html、assert内html和网络URL&&& JS与移动端webview的相互交互
- 混合开发之webView加载html,android 和 html之间进行数据交互
- Android开发中webView与HTML+JS的交互
- WKWebView和UIWebView加载本地html和JS交互各种坑解决办法
- android中加载webview以及与JS的交互
- HTML---Android中webview和js之间的交互
- Android WebView 远程网页 加载本地资源js/html/css
- Android实现js及webview交互之在html页面中调用系统摄像头
- webview 笔记二(android和js交互、包括链接跳转常见问题处理,加载监视,拦截Url等)
- Android Webview 加载外部html时选择加载本地的js,css等资源文件
- Android在WebView中加载HTML并实现交互
- Android中WebView加载本地Html,与JavaScript与Android交互: 一
- Android Webview 加载外部html时选择加载本地的js,css等资源文件
- HTML---android webview组件如何使用 Webview与js交互
- HTML---Android中webview和js之间的交互
- Android Webview加载外部html时选择加载本地的js,css等资源文件
- Android实现js及webview交互之在html页面中调用系统摄像头