您的位置:首页 > 移动开发

安卓 webview的js交互

2014-11-18 15:35 267 查看

hdWebView.setWebChromeClient(new WebChromeClient() {

   @Override

   public boolean onJsAlert(WebView view, String url, String message, final JsResult result) {

    try {

     Builder builder = new Builder(HuoDongActivity.this);

     builder.setTitle("提示对话框");

     builder.setMessage(message);

     builder.setPositiveButton(android.R.string.ok, new AlertDialog.OnClickListener() {

      public void onClick(DialogInterface dialog, int which) {

       result.confirm();

      }

     });

     builder.setCancelable(false);

     builder.create();

     builder.show();

    } catch (Exception e) {

    }

    return true;

   };

   @Override

   // 处理javascript中的confirm

   public boolean onJsConfirm(WebView view, String url, String message, final JsResult result) {

    try {

     Builder builder = new Builder(HuoDongActivity.this);

     builder.setTitle("带选择的对话框");

     builder.setMessage(message);

     builder.setPositiveButton(android.R.string.ok, new AlertDialog.OnClickListener() {

      public void onClick(DialogInterface dialog, int which) {

       result.confirm();

      }

     });

     builder.setNegativeButton(android.R.string.cancel, new DialogInterface.OnClickListener() {

      public void onClick(DialogInterface dialog, int which) {

       result.cancel();

      }

     });

     builder.setCancelable(false);

     builder.create();

     builder.show();

    } catch (Exception e) {

    }

    return true;

   };

   @Override

   public boolean onJsPrompt(WebView view, String url, String message, String defaultValue, final JsPromptResult result) {

    try {

     final LayoutInflater factory = LayoutInflater.from(HuoDongActivity.this);

     final View dialogview = factory.inflate(R.layout.prom_dialog, null);

     ((TextView) dialogview.findViewById(R.id.TextView_PROM)).setText(message);

     ((EditText) dialogview.findViewById(R.id.EditText_PROM)).setText(defaultValue);

     Builder builder = new Builder(HuoDongActivity.this);

     builder.setTitle("带输入的对话框");

     builder.setView(dialogview);

     builder.setPositiveButton(android.R.string.ok, new AlertDialog.OnClickListener() {

      public void onClick(DialogInterface dialog, int which) {

       String value = ((EditText) dialogview.findViewById(R.id.EditText_PROM)).getText().toString();

       result.confirm(value);

      }

     });

     builder.setNegativeButton(android.R.string.cancel, new DialogInterface.OnClickListener() {

      public void onClick(DialogInterface dialog, int which) {

       result.cancel();

      }

     });

     builder.setOnCancelListener(new DialogInterface.OnCancelListener() {

      public void onCancel(DialogInterface dialog) {

       result.cancel();

      }

     });

     builder.show();

    } catch (Exception e) {

     // TODO: handle exception

    }

    return true;

   };

   @Override

   public void onProgressChanged(WebView view, int newProgress) {

    HuoDongActivity.this.getWindow().setFeatureInt(Window.FEATURE_PROGRESS, newProgress * 100);

    super.onProgressChanged(view, newProgress);

   }

   @Override

   public void onReceivedTitle(WebView view, String title) {

    super.onReceivedTitle(view, title);

   }

  });
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  安卓