web.setWebChromeClient(new MyWebChromeClient());
class MyWebChromeClient extends WebChromeClient
{
@Override
public boolean onJsConfirm(WebView view, String url, String message, final JsResult result)
{
new AlertDialog.Builder(myApp)
.setTitle( getResources().getString( R.string.app_name) )
.setMessage(message)
.setPositiveButton(android.R.string.ok,
new DialogInterface.OnClickListener()
{
public void onClick(DialogInterface dialog, int which)
{
result.confirm();
}
})
.setNegativeButton(android.R.string.cancel,
new DialogInterface.OnClickListener()
{
public void onClick(DialogInterface dialog, int which)
{
result.cancel();
}
})
.create()
.show();
return true;
}
@Override
public boolean onJsAlert(WebView view, String url, String message,final JsResult result)
{
new AlertDialog.Builder(HomeActivity.this)
.setMessage(message)
.setPositiveButton(android.R.string.ok, new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int which) {
result.confirm();
}})
.show();
return true;
}
}
web.setWebViewClient(new MyWebViewClient());
private class MyWebViewClient extends WebViewClient {
//轉址
@Override
public boolean shouldOverrideUrlLoading(WebView view, String url)
{
if (url.startsWith("tel:")) {
Intent intent = new Intent(Intent.ACTION_DIAL,Uri.parse(url));
startActivity(intent);
}
else if(url.startsWith("http:") || url.startsWith("https:"))
{
view.loadUrl(url);
}
return true;
}
//頁面初始化載入結束
@Override
public void onPageFinished(WebView view , String url)
{
super.onPageFinished (view , url );
}
//載入失敗
@Override
public void onReceivedError ( WebView view , int errorCode , String description , String failingUrl )
{
super.onReceivedError ( view , errorCode , description , failingUrl );
loadFailure.setVisibility ( View.VISIBLE );
}
//載入資源
@Override
public void onLoadResource(WebView view, String url)
{
super.onLoadResource(view, url);
}
//儲存密碼
@Override
public void onReceivedHttpAuthRequest(WebView view, HttpAuthHandler handler, String host, String realm) {
super.onReceivedHttpAuthRequest(view, handler, host, realm);
}
//載入頁面
@Override
public void onPageStarted(WebView view, String url, Bitmap favicon) {
super.onPageStarted(view, url, favicon);
}
}
載入成功事件順序
1.onPageStarted
2.onLoadResource
3.onPageFinished
載入失敗事件順序
1.onPageStarted
2.onLoadResource
3.onReceivedError
4.onPageFinished