天天看點

android WebView onJsAler onJsC…

package com.html;

import com.sqlite.Dao.NcpRegisterDAO;

import android.app.Activity;

import android.app.AlertDialog;

import android.app.AlertDialog.Builder;

import android.content.DialogInterface;

import android.content.Intent;

import android.os.Bundle;

import android.os.Handler;

import android.webkit.JsResult;

import android.webkit.WebChromeClient;

import android.webkit.WebView;

import android.widget.Toast;

public class Register_protocolActivity extends Activity {

    privateHandler mHandler = new Handler();

    privateWebView mWebView;

    privateNcpRegisterDAO dao = null;

    public voidonCreate(Bundle savedInstanceState) {

       super.onCreate(savedInstanceState);

       //踩上一腳,記錄有了就知道複位的時候要去哪裡

       dao = new NcpRegisterDAO(Register_protocolActivity.this);

       String name = "MainActivity";

       dao.add_Stepped(name);

       //隐藏标題欄

       //requestWindowFeature(Window.FEATURE_NO_TITLE);

       //隐藏狀态欄

       //getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,WindowManager.LayoutParams.FLAG_FULLSCREEN);

       //該ACTIVITY不需要layout設定,是以直接指向MainActivity的main

       setContentView(R.layout.protocol);

       //将WebView執行個體化

       mWebView = (WebView) this.findViewById(R.id.webView);

       //WebView打開權限

       mWebView.getSettings().setJavaScriptCanOpenWindowsAutomatically(true);

       mWebView.getSettings().setJavaScriptEnabled(true);

       //WebView,SWF檔案運作權限

       mWebView.getSettings().setPluginsEnabled(true);

       mWebView.addJavascriptInterface(new Action(), "ncp"); 

      mWebView.loadUrl("file:///android_asset/protocol.html");

        // 建立WebViewChromeClient

            WebChromeClient wvcc = new WebChromeClient() {          

        // 處理Alert事件

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

            // 建構一個Builder來顯示網頁中的alert對話框

                           Builder builder = newBuilder(Register_protocolActivity.this);

                             builder.setTitle("計算1+2的值");

                             builder.setMessage(message);

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

                                 @Override

                                 public void onClick(DialogInterface dialog, int which) {

                                     result.confirm();

                                 }

                             });

                            builder.setCancelable(false);

                             builder.create();

                             builder.show();

                             return true;

                         }

           // 處理Confirm事件

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

                      Builder builder = newBuilder(Register_protocolActivity.this);

                      builder.setTitle("退出确認");

                      builder.setMessage(message);

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

                          public void onClick(DialogInterface dialog, int which) {

                              //result.confirm();

                           //從協義開始到發送注冊資訊,這些步驟退出後直接清零複位表,不然如果非正常關機後再重新開機會再次進入該頁

                           dao.Clear_NcpStep_Set0();

                             finish();

                          }

繼續閱讀