布局
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
android:paddingLeft="15dp"
android:paddingTop="15dp"
android:background="#bbe4fb"
android:paddingRight="15dp"
android:paddingBottom="15dp">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content">
<Button
android:id="@+id/btn_show"
android:layout_width="90dp"
android:layout_height="wrap_content"
android:text="调用js方法" />
</LinearLayout
<WebView
android:id="@+id/webView"
android:layout_width="match_parent"
android:layout_height="match_parent"/>
</LinearLayout>
主页面
public class HomeFragment extends Fragment {
private WebView mWeb;
private Button mBtn;
@Nullable
@Override
public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
return inflater.inflate(R.layout.fragment_home,container,false);
}
@Override
public void onViewCreated(@NonNull View view, @Nullable Bundle savedInstanceState) {
super.onViewCreated(view, savedInstanceState);
mWeb =(WebView) view.findViewById(R.id.webView);
mBtn =(Button) view.findViewById(R.id.btn_show);
initData();
initEvent();
}
@SuppressLint("JavascriptInterface")
private void initData() {
mWeb.setWebChromeClient(new WebChromeClient());
WebSettings set = mWeb.getSettings();
//设置webview支持js
set.setJavaScriptEnabled(true);
//设置本地调用对象及其接口
mWeb.addJavascriptInterface(new JsInteraction(), "control");
mWeb.loadUrl("file:///android_asset/html/about.html");
}
private void initEvent() {
mBtn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
mWeb.loadUrl("javascript:callJS()");
}
});
}
public class JsInteraction {
@JavascriptInterface
public void toastMessage(String message){
Toast.makeText(getContext(),message,Toast.LENGTH_LONG).show();
}
}
}