1.のWebViewの基本的な使い方
1. webViewを介してhtmlページをロードする使用法:
//例如:加载assets文件夹下的test.html页面
mWebView.loadUrl("file:///android_asset/test.html")
//例如:加载网页
mWebView.loadUrl("http://www.baidu.com")
//例如:加载assets文件夹下的test.html页面
mWebView.loadUrl("file:///android_asset/test.html")
//例如:加载网页
mWebView.loadUrl("http://www.baidu.com")
注:通常、ウェブページはアプリ内で開かれます。それ以外の場合は、携帯電話のデフォルトのブラウザで開かれます。同時に、アプリのタイトルにH5ページのタイトルを表示させます。WebViewClientを設定します。
webview.setWebViewClient(new WebViewClient() {
@Override
public boolean shouldOverrideUrlLoading(WebView view, String url) {//设置App内部打开网页
view.loadUrl(url);
return true;
}
@Override
public void onPageFinished(WebView view, String url) {//设置标题
tv_title.setText(view.getTitle());
}
});
2. WebVIew Access HTTPS (ssl暗号化URL時間を使用したプロトコル要求)。処理されない場合、ページは空白です。システムに付属のブラウザで開くと、証明書を確認するためのダイアログボックスが表示されます。処理が必要な書き換えするonReceivedSslError方法WebViewClientのクラスを、次のように @Override
public void onReceivedSslError(WebView view, SslErrorHandler handler, SslError error) {
handler.proceed();
}
2つ、WebViewとH5の相互作用
前提条件:jsメソッドの呼び出しはwebViewでサポートされている必要があります
WebSettings webSettings = mWebView.getSettings();
//设置为可调用js方法
webSettings.setJavaScriptEnabled(true);
1 Androidのは、HTMLページ内のJavaScriptメソッドを呼び出し、ローカル
WebSettings webSettings = mWebView.getSettings();
//设置为可调用js方法
webSettings.setJavaScriptEnabled(true);
//若调用的js方法没有返回值 do()方法为JS的方法
mWebView.loadUrl("javascript:do()");
//有返回值
mWebView.evaluateJavascript("do(1,2)", new ValueCallback<String>() {
@Override
public void onReceiveValue(String value) {
Log.e(TAG, "onReceiveValue value=" + value);
}
});
2. jsがAndroidのネイティブJavaメソッドを呼び出します
//若调用的js方法没有返回值 do()方法为JS的方法
mWebView.loadUrl("javascript:do()");
//有返回值
mWebView.evaluateJavascript("do(1,2)", new ValueCallback<String>() {
@Override
public void onReceiveValue(String value) {
Log.e(TAG, "onReceiveValue value=" + value);
}
});
まず、Javaクラスを定義します。
public class JsInteration {
@JavascriptInterface //Android4.2以上可以直接使用@JavascriptInterface注解来声明
public String back() {
return "hello world";
}
}
次に、jsでAndroidのメソッドを呼び出します
public class JsInteration {
@JavascriptInterface //Android4.2以上可以直接使用@JavascriptInterface注解来声明
public String back() {
return "hello world";
}
}
//第一个参数是 供给js调用的类,第二个参数是js中要用到的调用这个类中的方法的对象,可以随便起
mWebView.addJavascriptInterface(new JsInteration(), "android");
質問:Jsがandroidメソッドを無効と呼ぶことが時々発生します。解決:
//第一个参数是 供给js调用的类,第二个参数是js中要用到的调用这个类中的方法的对象,可以随便起
mWebView.addJavascriptInterface(new JsInteration(), "android");