首先
WebView 记载方式有两种:
加载网络:web_view.loadUrl(“https://abnerming8.github.io/abnerming.html”);
加载本地:需要先在src下新建 assets文件 放入本地H5文件
加载方式:web_view.loadUrl(“file:///android_asset/web/about.html”);
注意写路径时 是asset 不要加’S’ 不要加载不到
public class My_Fragment extends BaseFragment {
private Zdy_view zdy_view;
private Button my_btn_color;
private Button my_btn_two;
private WebView web_view;
private String web_url = "https://abnerming8.github.io/abnerming.html";
@Override
protected int initLayout() {
return R.layout.my_fragment;
}
@Override
protected void initView(View view) {
zdy_view = view.findViewById(R.id.zdy_view);
my_btn_color = view.findViewById(R.id.my_btn_color);
my_btn_two = view.findViewById(R.id.my_btn_two);
web_view = view.findViewById(R.id.web_view);
}
@Override
protected void initData() {
web_view.loadUrl(web_url);
//获取设备管理器
WebSettings settings = web_view.getSettings();
//开启支持JS 权限
settings.setJavaScriptEnabled(true);
//开启 窗口权限 AlertDialog需要
settings.setJavaScriptCanOpenWindowsAutomatically(true);
//添加你与 H5 要交互的方法 参数1:是定义两边需要交互的方法 参数2:就是H5的调用者
web_view.addJavascriptInterface(new TestTwo(), "android");
web_view.setWebViewClient(new WebViewClient());
web_view.setWebChromeClient(new WebChromeClient(){
@Override
public boolean onJsAlert(WebView view, String url, String message, JsResult result) {
return super.onJsAlert(view, url, message, result);
}
});
my_btn_color.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
getActivity().runOnUiThread(new Runnable() {
@Override
public void run() {
web_view.loadUrl("javascript:changeColor('#d43c3c')");
}
});
}
});
}
class TestTwo {
@JavascriptInterface
public void show() {
getActivity().runOnUiThread(new Runnable() {
@Override
public void run() {
web_view.loadUrl("javascript:toast()");
}
});
}
}
}