public class WebActivityextends AppCompatActivity {
private WebViewwb1;
private ButtonwbBtn1;
private ButtonwbBtn2;
@SuppressLint({"SetJavaScriptEnabled", "JavascriptInterface"})
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_web);
initView();
//开启JavaScript
wb1.getSettings().setJavaScriptEnabled(true);
//加载地址
wb1.loadUrl("file:///android_asset/h5.html");
//加载客户端
wb1.setWebViewClient(new WebViewClient() {
@Override
public boolean shouldOverrideUrlLoading(WebView view, WebResourceRequest request) {
//在本客户端登录页码
view.loadUrl(String.valueOf(request.getUrl()));
return true;
}
});
wb1.setWebChromeClient(new WebChromeClient() {
@Override
public void onProgressChanged(WebView view, int newProgress) {
//进度关联进度条
super.onProgressChanged(view, newProgress);
}
});
//和Android交互
wb1.addJavascriptInterface(this, "Android");
//允许文件访问
wb1.getSettings().setAllowFileAccess(true);
wbBtn1.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
wb1.loadUrl("javascript:text_arg('客户端修改文字')");
}
});
wbBtn2.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
wb1.loadUrl("javascript:image_arg('/sdcard/Download/1627283398571.jpg')");
}
});
}
@JavascriptInterface
public void showToast(String msg) {
Toast.makeText(this, ""+msg, Toast.LENGTH_SHORT).show();
}
@JavascriptInterface
public void fenxiang(String msg) {
Toast.makeText(this, ""+msg, Toast.LENGTH_SHORT).show();
}
private void initView() {
wb1 = findViewById(R.id.wb1);
wbBtn1 = findViewById(R.id.wb_btn1);
wbBtn2 = findViewById(R.id.wb_btn2);
}
}
下边是Js代码放到android——main下边的assets
<!DOCTYPE html>
<!--头-->
<script type="text/javascript">
//定义方法:修改文字
function text(){
//找到text_id控件修改
document.getElementById("text_id").innerText="哈哈哈哈";
}
function text_arg(str){
//找到text_id控件修改
document.getElementById("text_id").innerText=str;
}
//定义方法:修改图片
function image(){
//找到img_id控件修改
document.getElementById("img_id").src="img/HBuilder.png";
}
function image_arg(img_src){
//找到img_id控件修改
document.getElementById("img_id").src=img_src;
}
//js调用安卓代码
function tusi(){
Android.showToast("我是H5")
}
//js调用安卓代码
function textfx(){
Android.fenxiang("我是分享啊")
}
<!--身体-->
<p id="text_id">我是文字
<img id="img_id" width="200" height="200"
src="https://gimg2.baidu.com/image_search/src=http%3A%2F%2Fcdn.duitang.com%2Fuploads%2Fitem%2F201410%2F20%2F20141020162058_UrMNe.jpeg&refer=http%3A%2F%2Fcdn.duitang.com&app=2002&size=f9999,10000&q=a80&n=0&g=0n&fmt=jpeg?sec=1622776682&t=2fb93f6b818442cb65f5e5a51e69d8b1"/>
<button id="bt1_id" onclick="tusi()">调用安卓代码弹出对话框
<button id="bt3_id" onclick="image_arg('img/HBuilder.png')">修改图片</button> <button id="bt2_id" onclick="text('湖的样真帅')">修改文字
<button id="bt4_id" onclick="textfx()">分享
</html>