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

arrow
arrow
    全站熱搜

    Jiang Ying-Fu 發表在 痞客邦 留言(0) 人氣()