package com.example.mouth.fragment;

import android.os.Bundle;
import android.support.annotation.NonNull;
import android.support.annotation.Nullable;
import android.support.v4.app.Fragment;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.webkit.JavascriptInterface;
import android.webkit.JsResult;
import android.webkit.WebChromeClient;
import android.webkit.WebResourceRequest;
import android.webkit.WebSettings;
import android.webkit.WebView;
import android.webkit.WebViewClient;
import android.widget.Button;

import com.example.mouth.R;

public class WoDeFragment extends Fragment {

private View view;
private WebView webview;
private Button button_wode;

@Nullable
@Override
public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
view = View.inflate(getActivity(), R.layout.wodefragment, null);
return view;
}

@Override
public void onActivityCreated(@Nullable Bundle savedInstanceState) {
super.onActivityCreated(savedInstanceState);
webview = view.findViewById(R.id.webview);
button_wode = view.findViewById(R.id.button_wode);

button_wode.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
getActivity().runOnUiThread(new Runnable() {
@Override
public void run() {
webview.loadUrl("javascript:changeColor('#DCDCDC')");
}
});

}
});

webview.loadUrl("https://abnerming8.github.io/abnerming.html");
//获取设置管理器
WebSettings settings = webview.getSettings();
//开启权限可以跟js交互的权限
settings.setJavaScriptEnabled(true);
//Alert弹窗需要我们开权限
settings.setJavaScriptCanOpenWindowsAutomatically(true);
//添加你和html5要交互的方法 参数1:是定义两边需要交互的方法 参数2:就是html那边的调用者
webview.addJavascriptInterface(new TestTwo(), "android");

webview.setWebViewClient(new WebViewClient() {
@Override
public boolean shouldOverrideUrlLoading(WebView view, WebResourceRequest request) {
view.loadUrl("https://abnerming8.github.io/abnerming.html");
return super.shouldOverrideUrlLoading(view, request);
}
});

webview.setWebChromeClient(new WebChromeClient() {
@Override
public boolean onJsAlert(WebView view, String url, String message, JsResult result) {
return super.onJsAlert(view, url, message, result);
}
});

}

private class TestTwo {
@JavascriptInterface
public void show() {
getActivity().runOnUiThread(new Runnable() {
@Override
public void run() {
webview.loadUrl("javascript:toast()");
}
});
}
}
}
//https://www.jianshu.com/p/97f52819a19d更多的HTML5的调用