package com.example.customlinearlayout.view;
import android.app.ProgressDialog;
import android.content.Context;
import android.graphics.Bitmap;
import android.util.AttributeSet;
import android.view.MotionEvent;
import android.view.View;
import android.webkit.JsResult;
import android.webkit.WebChromeClient;
import android.webkit.WebSettings;
import android.webkit.WebView;
import android.webkit.WebViewClient;
import android.widget.Toast;
public class LiveWebView extends WebView {
Context mContext;
public LiveWebView(Context context) {
super(context);
mContext = context;
setWebViewClient();
}
public LiveWebView(Context context, AttributeSet attrs) {
super(context, attrs);
mContext = context;
setWebViewClient();
}
@Override
public boolean onCheckIsTextEditor() {
return true;
}
boolean setWebViewClient() {
setScrollBarStyle(SCROLLBARS_INSIDE_OVERLAY);
setFocusable(true);
setFocusableInTouchMode(true);
requestFocus(View.FOCUS_DOWN);
WebSettings webSettings = getSettings();
webSettings.setSavePassword(false);
webSettings.setSaveFormData(false);
webSettings.setJavaScriptEnabled(true);
webSettings.setSupportZoom(false);
webSettings.setUseWideViewPort(true);
setOnTouchListener(new View.OnTouchListener() {
@Override
public boolean onTouch(View v, MotionEvent event) {
switch (event.getAction()) {
case MotionEvent.ACTION_DOWN:
case MotionEvent.ACTION_UP:
if (!v.hasFocus()) {
v.requestFocus();
}
break;
}
return false;
}
});
this.setWebViewClient(new WebViewClient() {
ProgressDialog dialog = new ProgressDialog(mContext);
@Override
public boolean shouldOverrideUrlLoading(WebView view, String url) {
System.out.println("+-------------------------------");
System.out.println("| shouldOverrideUrlLoading : url: " + url);
System.out.println("+-------------------------------");
loadUrl(url);
return true;
}
public void onReceivedError(WebView view, int errorCode, String description, String failingUrl) {
Toast.makeText(mContext, "Oh no! " + description, Toast.LENGTH_SHORT).show();
}
@Override
public void onPageStarted(WebView view, String url, Bitmap favicon) {
if (dialog != null) {
dialog.setMessage("Loading...");
dialog.setIndeterminate(true);
dialog.setCancelable(true);
dialog.show();
}
}
public void onPageFinished(WebView view, String url) {
if (dialog != null) {
dialog.cancel();
}
}
});
this.setWebChromeClient(new WebChromeClient() {
public void onProgressChanged(WebView view, int progress) {
}
@Override
public boolean onJsAlert(WebView view, String url, String message, JsResult result) {
System.out.println("+-------------------------------");
System.out.println("|WebChromeClient onJsAlert " + message);
System.out.println("+-------------------------------");
result.confirm();
return true;
}
});
loadUrl("http://www.baidu.com");
return true;
}
}