话不多说:先撸一个html:名字叫index.html,这个html放到哪里,大家应该都知道吧,哈哈!!!!
<!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" />
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/12854.html