首先建立一个assets的包
插入
<head>
<meta charset="UTF-8">
<title></title>
<script>
function callJS(){
alert("Android调用了JS方法");
}
function callAndroid(){
test.hello("js调用了android种的hello方法");
}
</script>
</head>
<body>
<button type="button" style="width: 200px;height: 200px;background-color: white;"id="button1"onclick="CallAndroid"></button>
</body>
然后建一个AndroidtiJs类里面写 @JavascriptInterface public void hello(String mag){ Log.e("myMessage","AndroidtiJs"+mag); }
在主页面里写
@SuppressLint("JavascriptInterface")
@Override
public void onViewCreated(@NonNull View view, @Nullable Bundle savedInstanceState) {
super.onViewCreated(view, savedInstanceState);
button.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
wb.loadUrl("javascript:callJS()");
}
});
WebSettings settings = wb.getSettings();
settings.setJavaScriptEnabled(true);
settings.setJavaScriptCanOpenWindowsAutomatically(true);
wb.loadUrl("file:///android_asset/javascript.html");
wb.addJavascriptInterface(new AndroidtiJs(),"text");
wb.setWebChromeClient(new WebChromeClient(){
@Override
public boolean onJsAlert(WebView view, String url, String message, JsResult result) {
return super.onJsAlert(view, url, message, result);
}
});
}
以下是XML文件中要写的
<WebView
android:layout_width="match_parent"
android:id="@+id/wb"
android:layout_height="match_parent"></WebView>
android:layout_width="wrap_content"
android:id="@+id/button"
android:text="调用JS方法"
android:layout_height="wrap_content" />