コード例 #1
0
 public boolean onJsConfirm(
     WebView paramWebView,
     String paramString1,
     String paramString2,
     final JsResult paramJsResult) {
   paramWebView = new AlertDialog.Builder(cordova.getActivity());
   paramWebView.setMessage(paramString2);
   paramWebView.setTitle("Confirm");
   paramWebView.setCancelable(true);
   paramWebView.setPositiveButton(
       17039370,
       new DialogInterface.OnClickListener() {
         public void onClick(
             DialogInterface paramAnonymousDialogInterface, int paramAnonymousInt) {
           paramJsResult.confirm();
         }
       });
   paramWebView.setNegativeButton(
       17039360,
       new DialogInterface.OnClickListener() {
         public void onClick(
             DialogInterface paramAnonymousDialogInterface, int paramAnonymousInt) {
           paramJsResult.cancel();
         }
       });
   paramWebView.setOnCancelListener(
       new DialogInterface.OnCancelListener() {
         public void onCancel(DialogInterface paramAnonymousDialogInterface) {
           paramJsResult.cancel();
         }
       });
   paramWebView.setOnKeyListener(
       new DialogInterface.OnKeyListener() {
         public boolean onKey(
             DialogInterface paramAnonymousDialogInterface,
             int paramAnonymousInt,
             KeyEvent paramAnonymousKeyEvent) {
           if (paramAnonymousInt == 4) {
             paramJsResult.cancel();
             return false;
           }
           return true;
         }
       });
   paramWebView.show();
   return true;
 }
コード例 #2
0
ファイル: MJPersonalInfo.java プロジェクト: lizwangying/MJ
  @Override
  public void initView() {
    webView.getSettings().setJavaScriptEnabled(true);
    webView.getSettings().setSupportZoom(true);
    webView.getSettings().setBuiltInZoomControls(false);
    // 出现横向滚动条,把所有内容放到webview组件等宽的一列中
    webView.getSettings().setLayoutAlgorithm(WebSettings.LayoutAlgorithm.SINGLE_COLUMN);

    webView.setWebViewClient(
        new WebViewClient() {
          // 点击链接覆盖而不是打开新的窗口
          @Override
          public boolean shouldOverrideUrlLoading(WebView view, String url) {
            view.loadUrl(url);
            return true;
          }
        });
    // 监听回退键
    webView.setOnKeyListener(
        new View.OnKeyListener() {
          @Override
          public boolean onKey(View view, int keyCode, KeyEvent event) {
            if (event.getAction() == KeyEvent.ACTION_DOWN) {
              if (keyCode == KeyEvent.KEYCODE_BACK && webView.canGoBack()) {
                webView.goBack();
                return true; // 已处理
              }
            }
            return false;
          }
        });
    webView.setWebChromeClient(
        new WebChromeClient() {
          @Override
          public void onProgressChanged(WebView view, int newProgress) {
            // 更新窗口进度,Activity的进度范围在0到10000之间,所以乘以100
            MJPersonalInfo.this.setProgress(newProgress * 100);
          }
        });

    webView.loadUrl(
        "http://baike.baidu.com/link?url=hq0eopWJyK3jHTj8iFORhUdaGKmX1tfLzArgVyXGI1fI"
            + "50kBrKwOCKm1RA8btK9AhAKP4Ds_PJVaGxx0YI3Y2nwLD49CrnDxFaBFDMhOIuN05fj92CRVwpyxn6fxbaH"
            + "VymBDIVxvIPKTv5fu1OlsNK");
    webView.requestFocus();
  }
コード例 #3
0
ファイル: WebActivity.java プロジェクト: yankaics/hetianxia
  public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.web_main);
    showWV = (WebView) findViewById(R.id.showWV);

    dialog = new LoadingDialog(WebActivity.this);
    dialog.show();

    Intent inget = this.getIntent();
    url = inget.getStringExtra("url");
    showWV.loadUrl(url);

    showWV.getSettings().setJavaScriptEnabled(true);
    showWV.requestFocus();
    showWV.setWebViewClient(
        new WebViewClient() {
          public boolean shouldOverrideUrlLoading(WebView view, String url) {
            view.loadUrl(url);
            return true;
          }
        });

    showWV.setWebChromeClient(
        new WebChromeClient() {

          public void onProgressChanged(WebView view, int newProgress) {
            if (newProgress == 100) { // 这里是设置activity的标题,
              dialog.dismiss();
            }
          }
        });

    showWV.setOnKeyListener(
        new View.OnKeyListener() {
          public boolean onKey(View v, int keyCode, KeyEvent event) {
            if (event.getAction() == KeyEvent.ACTION_DOWN) {
              if (keyCode == KeyEvent.KEYCODE_BACK && showWV.canGoBack()) { // 表示按返回键  时的操作
                showWV.goBack(); // 后退
                // webview.goForward();//前进
                return true; // 已处理
              }
            }
            return false;
          }
        });
  }
コード例 #4
0
ファイル: FragHome.java プロジェクト: quxin/Baike
  @SuppressLint({"InflateParams", "SetJavaScriptEnabled"})
  @Override
  public View onCreateView(
      LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {

    view = inflater.inflate(R.layout.frag_home, null);
    webview = (WebView) view.findViewById(R.id.webView1_home);
    cookies = new ArrayList<Cookie>();
    WebSettings ws = webview.getSettings();
    ws.setJavaScriptEnabled(true);
    ws.setCacheMode(WebSettings.LOAD_CACHE_ELSE_NETWORK);
    ws.setSupportZoom(true);
    ws.setBuiltInZoomControls(true);
    ws.setUseWideViewPort(true);
    ws.setLoadWithOverviewMode(true);

    // ws.setLayoutAlgorithm(LayoutAlgorithm.NARROW_COLUMNS);
    webview.setWebViewClient(
        new WebViewClient() {

          @Override
          public boolean shouldOverrideUrlLoading(WebView view, String url) {
            view.loadUrl(url);
            return true;
          }
        });

    webview.setOnKeyListener(
        new OnKeyListener() {

          @Override
          public boolean onKey(View arg0, int arg1, KeyEvent arg2) {
            if ((arg1 == KeyEvent.KEYCODE_BACK) && webview.canGoBack()) {
              webview.goBack();
              return true;
            }
            return false;
          }
        });

    setCookie(getActivity().getApplicationContext());
    webview.loadUrl(devbaseURL + "?app-default");
    return view;
  }
コード例 #5
0
  private void initWebView() {
    //		try {
    //			System.out.println("yzj " + TuringUtils.decodeUnicode(wordApi("好")));
    //		} catch (JSONException e) {
    //			// TODO Auto-generated catch block
    //			e.printStackTrace();
    //		}

    myWebView = (WebView) findViewById(R.id.webview);
    myWebView.setInitialScale(200); // 为25%,最小缩放等级
    //		myWebView.setBackgroundColor(Color.argb(232, 0, 0, 0));
    WebSettings webSettings = myWebView.getSettings();
    webSettings.setJavaScriptEnabled(true);
    webSettings.setSupportZoom(true);
    myWebView.setWebViewClient(new WebViewClient());
    myWebView.setOnKeyListener(
        new OnKeyListener() {
          @Override
          public boolean onKey(View arg0, int keyCode, KeyEvent event) {
            if ((keyCode == KeyEvent.KEYCODE_BACK) && myWebView.canGoBack()) {
              myWebView.goBack();
              return true;
            }
            return false;
          }
        });
    myWebView.setWebViewClient(
        new WebViewClient() {
          @Override
          public void onPageFinished(WebView view, String url) {
            // TODO Auto-generated method stub
            super.onPageFinished(view, url);
            System.out.println("yzj ax onPageFinished = ");
            if (myWebView.getScrollX() != 215 && myWebView.getScrollY() != 160) {
              myWebView.scrollTo(215, 160);
            }
          }
        });
    SharedPreferences sp = tempContext.getSharedPreferences("SP", Context.MODE_PRIVATE);
    lastUrl = sp.getString("lastUrl", "http://www.baidu.com");
    myWebView.loadUrl(lastUrl);
  }
コード例 #6
0
  private void initWebView() {
    mSettings = webView.getSettings();
    mSettings.setSupportZoom(true); // 支持缩放
    mSettings.setBuiltInZoomControls(true); // 启用内置缩放装置
    // mSettings.setJavaScriptEnabled(true); // 启用JS脚本
    // 当点击链接时,希望覆盖而不是打开新窗口
    webView.setWebViewClient(
        new WebViewClient() {
          public boolean shouldOverrideUrlLoading(WebView view, String url) {
            view.loadUrl(url); // 加载新的url
            return true; // 返回true,代表事件已处理,事件流到此终止
          };
        });
    // 点击后退按钮,让WebView后退一页(也可以覆写Activity的onKeyDown方法)
    webView.setOnKeyListener(
        new View.OnKeyListener() {
          @Override
          public boolean onKey(View v, int keyCode, KeyEvent event) {
            if (event.getAction() == KeyEvent.ACTION_DOWN) {
              if (keyCode == KeyEvent.KEYCODE_BACK && webView.canGoBack()) {
                webView.goBack(); // 后退
                return true; // 已处理
              }
            }
            return false;
          }
        });

    webView.setWebChromeClient(
        new WebChromeClient() {
          // 当WebView进度改变时更新窗口进度
          @Override
          public void onProgressChanged(WebView view, int newProgress) {
            // Activity的进度范围在0到10000之间,所以这里要乘以100
            setProgress(newProgress * 100);
          }
        });
    webView.loadUrl(url); // 加载url
    webView.requestFocus(); // 获取焦点
  }
コード例 #7
0
  @SuppressLint("JavascriptInterface")
  public void showWebView() { // webView与js交互代码
    try {
      mWebView = new WebView(this);
      setContentView(mWebView);

      mWebView.requestFocus();

      mWebView.setWebChromeClient(
          new WebChromeClient() {
            @Override
            public void onProgressChanged(WebView view, int progress) {
              JSAndroidActivity.this.setTitle("Loading...");
              JSAndroidActivity.this.setProgress(progress);

              if (progress >= 80) {
                JSAndroidActivity.this.setTitle("JsAndroid Test");
              }
            }
          });

      mWebView.setOnKeyListener(
          (v, keyCode, event) -> {
            if (keyCode == KeyEvent.KEYCODE_BACK && mWebView.canGoBack()) {
              mWebView.goBack();
              return true;
            }
            return false;
          });

      WebSettings webSettings = mWebView.getSettings();
      webSettings.setJavaScriptEnabled(true);
      webSettings.setDefaultTextEncodingName("utf-8");

      mWebView.addJavascriptInterface(this, "android");
      mWebView.loadUrl("file:///android_asset/index.html");
    } catch (Exception e) {
      e.printStackTrace();
    }
  }
コード例 #8
0
  private void updateWebView() {

    mWebView.setWebChromeClient(
        new WebChromeClient() {
          public void onProgressChanged(WebView view, int progress) {
            setValue(progress);
            super.onProgressChanged(view, progress);
          }
        });

    mWebView.setWebViewClient(
        new WebViewClient() {
          public void onReceivedError(
              WebView view, int errorCode, String description, String failingUrl) {
            Toast.makeText(TermAndConditionActivity.this, description, Toast.LENGTH_SHORT).show();
          }

          @Override
          public void onPageFinished(WebView view, String url) {
            super.onPageFinished(view, url);
          }
        });

    mWebView.loadUrl(initilaPageUrl);

    mWebView.setOnKeyListener(
        new View.OnKeyListener() {

          public boolean onKey(View v, int keyCode, KeyEvent event) {
            if ((keyCode == KeyEvent.KEYCODE_BACK) && mWebView.canGoBack()) {
              if (mWebView.canGoBack()) {
                mWebView.goBack();
              }
              return true;
            }
            return false;
          }
        });
  }
コード例 #9
0
  private void renderView() {
    // reference
    final WebView webView = (WebView) mRootView.findViewById(R.id.fragment_main_webview);
    final AdView adView = (AdView) mRootView.findViewById(R.id.fragment_main_adview);

    // webview settings
    webView.getSettings().setBuiltInZoomControls(false);
    webView.getSettings().setSupportZoom(true);
    webView.getSettings().setCacheMode(WebSettings.LOAD_NO_CACHE);
    webView.getSettings().setJavaScriptEnabled(true);
    webView.setBackgroundColor(getResources().getColor(R.color.global_bg_front));
    webView.setScrollBarStyle(WebView.SCROLLBARS_OUTSIDE_OVERLAY); // fixes scrollbar on Froyo
    webView.setWebChromeClient(
        new WebChromeClient() {
          public void openFileChooser(ValueCallback<Uri> filePathCallback) {
            mFilePathCallback4 = filePathCallback;
            Intent intent = new Intent(Intent.ACTION_GET_CONTENT);
            intent.addCategory(Intent.CATEGORY_OPENABLE);
            intent.setType("*/*");
            startActivityForResult(
                Intent.createChooser(intent, "File Chooser"), REQUEST_FILE_PICKER);
          }

          public void openFileChooser(ValueCallback filePathCallback, String acceptType) {
            mFilePathCallback4 = filePathCallback;
            Intent intent = new Intent(Intent.ACTION_GET_CONTENT);
            intent.addCategory(Intent.CATEGORY_OPENABLE);
            intent.setType("*/*");
            startActivityForResult(
                Intent.createChooser(intent, "File Chooser"), REQUEST_FILE_PICKER);
          }

          public void openFileChooser(
              ValueCallback<Uri> filePathCallback, String acceptType, String capture) {
            mFilePathCallback4 = filePathCallback;
            Intent intent = new Intent(Intent.ACTION_GET_CONTENT);
            intent.addCategory(Intent.CATEGORY_OPENABLE);
            intent.setType("*/*");
            startActivityForResult(
                Intent.createChooser(intent, "File Chooser"), REQUEST_FILE_PICKER);
          }

          @Override
          public boolean onShowFileChooser(
              WebView webView,
              ValueCallback<Uri[]> filePathCallback,
              WebChromeClient.FileChooserParams fileChooserParams) {
            mFilePathCallback5 = filePathCallback;
            Intent intent = new Intent(Intent.ACTION_GET_CONTENT);
            intent.addCategory(Intent.CATEGORY_OPENABLE);
            intent.setType("*/*");
            startActivityForResult(
                Intent.createChooser(intent, "File Chooser"), REQUEST_FILE_PICKER);
            return true;
          }
        });
    webView.setWebViewClient(
        new WebViewClient() {
          private boolean mSuccess = true;

          @Override
          public void onPageFinished(final WebView view, final String url) {
            runTaskCallback(
                new Runnable() {
                  public void run() {
                    if (getActivity() != null && mSuccess) {
                      showContent(
                          500); // hide progress bar with delay to show webview content smoothly
                      showActionBarProgress(false);
                    }
                  }
                });
          }

          @Override
          public void onReceivedError(
              final WebView view,
              final int errorCode,
              final String description,
              final String failingUrl) {
            runTaskCallback(
                new Runnable() {
                  public void run() {
                    if (getActivity() != null) {
                      mSuccess = false;
                      showEmpty();
                      showActionBarProgress(false);
                    }
                  }
                });
          }

          @Override
          public boolean shouldOverrideUrlLoading(WebView view, String url) {
            if (DownloadUtility.isDownloadableFile(url)) {
              Toast.makeText(getActivity(), R.string.fragment_main_downloading, Toast.LENGTH_LONG)
                  .show();
              DownloadUtility.downloadFile(getActivity(), url, DownloadUtility.getFileName(url));
              return true;
            } else if (url != null && (url.startsWith("http://") || url.startsWith("https://"))) {
              // determine for opening the link externally or internally
              boolean external = isLinkExternal(url);
              boolean internal = isLinkInternal(url);
              if (!external && !internal) {
                external = WebViewAppConfig.OPEN_LINKS_IN_EXTERNAL_BROWSER;
              }

              // open the link
              if (external) {
                startWebActivity(url);
                return true;
              } else {
                showActionBarProgress(true);
                return false;
              }
            } else if (url != null && url.startsWith("mailto:")) {
              MailTo mailTo = MailTo.parse(url);
              startEmailActivity(mailTo.getTo(), mailTo.getSubject(), mailTo.getBody());
              return true;
            } else if (url != null && url.startsWith("tel:")) {
              startCallActivity(url);
              return true;
            } else if (url != null && url.startsWith("sms:")) {
              startSmsActivity(url);
              return true;
            } else if (url != null && url.startsWith("geo:")) {
              startMapSearchActivity(url);
              return true;
            } else {
              return false;
            }
          }
        });
    webView.setOnKeyListener(
        new View.OnKeyListener() {
          @Override
          public boolean onKey(View v, int keyCode, KeyEvent event) {
            if (event.getAction() == KeyEvent.ACTION_DOWN) {
              WebView webView = (WebView) v;

              switch (keyCode) {
                case KeyEvent.KEYCODE_BACK:
                  if (webView.canGoBack()) {
                    webView.goBack();
                    return true;
                  }
                  break;
              }
            }

            return false;
          }
        });
    webView.requestFocus(
        View
            .FOCUS_DOWN); // http://android24hours.blogspot.cz/2011/12/android-soft-keyboard-not-showing-on.html
    webView.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;
          }
        });

    // admob
    if (WebViewAppConfig.ADMOB && NetworkManager.isOnline(getActivity())) {
      AdRequest adRequest =
          new AdRequest.Builder()
              .addTestDevice(AdRequest.DEVICE_ID_EMULATOR)
              .addTestDevice(getString(R.string.admob_test_device_id))
              .build();
      adView.loadAd(adRequest);
      adView.setVisibility(View.VISIBLE);
    } else {
      adView.setVisibility(View.GONE);
    }
  }
コード例 #10
0
ファイル: Calendario.java プロジェクト: diegoflg/AppEsan2
  @Override
  public View onCreateView(
      LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
    final View c =
        inflater.inflate(
            R.layout.lay_talleres, container, false); // Se relaciona el View con su respectivo XML
    setRetainInstance(true); // Genera que no se afecte el fragmento en los cambios de configuracion
    final ProgressDialog dialog =
        ProgressDialog.show(
            getActivity(), "", "Please wait, Loading Page...", true); // Se crea el ProgressDialog

    final Timer t = new Timer(); // Se crea el timer

    myWebView =
        (WebView) c.findViewById(R.id.webview); // Se relaciona myWebView con webview del XML
    myWebView.loadUrl(
        "https://www.google.com/calendar/htmlembed?src=ndo8qlb1snenh41blag9slaav8%40group.calendar.google.com"); // url que carga el myWebView
    myWebView
        .getSettings()
        .setUseWideViewPort(
            true); // Sets whether the WebView should enable support for the "viewport" HTML meta
    // tag or should use a wide viewport.
    myWebView
        .getSettings()
        .setLoadWithOverviewMode(
            true); // Sets whether the WebView loads pages in overview mode, that is, zooms out the
    // content to fit on screen by width. This setting is taken into account when the
    // content width is greater than the width of the WebView control, for example,
    // when getUseWideViewPort() is enabled. The default is false
    myWebView
        .getSettings()
        .setBuiltInZoomControls(
            true); // Sets whether the WebView should use its built-in zoom mechanisms. The built-in
    // zoom mechanisms comprise on-screen zoom controls, which are displayed over the
    // WebView's content, and the use of a pinch gesture to control zooming
    myWebView
        .getSettings()
        .setSupportZoom(
            true); // Sets whether the WebView should support zooming using its on-screen zoom
    // controls and gestures.
    myWebView.getSettings().setJavaScriptEnabled(true); // Activa java script en el webView
    myWebView
        .getSettings()
        .setDisplayZoomControls(
            false); // Sets whether the WebView should display on-screen zoom controls when using
    // the built-in zoom mechanisms.
    myWebView
        .getSettings()
        .setDomStorageEnabled(true); // Sets whether the DOM storage API is enabled.
    myWebView
        .getSettings()
        .setAppCachePath(
            "/data/data/pe.edu.esan.appesan2/cache"); // Sets the path to the Application Caches
    // files.
    myWebView
        .getSettings()
        .setAllowFileAccess(
            true); // Enables or disables file access within WebView. File access is enabled by
    // default. Note that this enables or disables file system access only. Assets
    // and resources are still accessible using file:///android_asset and
    // file:///android_res.
    myWebView
        .getSettings()
        .setAppCacheEnabled(true); // Sets whether the Application Caches API should be enabled.
    myWebView
        .getSettings()
        .setLoadsImagesAutomatically(true); // Sets whether the WebView should load image resources.

    if (!isNetworkAvailable()) { // loading offline
      myWebView.loadUrl(
          "https://www.google.com/calendar/htmlembed?src=ndo8qlb1snenh41blag9slaav8%40group.calendar.google.com");
      // Solo cargará el cache si es que no hay internet disponible
      myWebView
          .getSettings()
          .setCacheMode(WebSettings.LOAD_CACHE_ONLY); // carga el cache si no hay internet
      Log.i(TAG, "SIN INTERNET");
    } else {
      Log.i(TAG, "CON INTERNET");
      myWebView.loadUrl(
          "https://www.google.com/calendar/htmlembed?src=ndo8qlb1snenh41blag9slaav8%40group.calendar.google.com");
      // Cargará con internet por defecto
      myWebView.getSettings().setCacheMode(WebSettings.LOAD_DEFAULT);
    }

    myWebView.setOnKeyListener(
        new View.OnKeyListener() {
          @Override
          public boolean onKey(
              View v,
              int keyCode,
              KeyEvent event) { // Metodo override que se ejecutaa si se presiona alguna tecla
            if (event.getAction() == KeyEvent.ACTION_DOWN) { // si se presiona atras
              WebView webView = (WebView) v;

              switch (keyCode) {
                case KeyEvent.KEYCODE_BACK:
                  if (webView.canGoBack()) { // y el webview puede retroceder
                    webView.goBack(); // retrocedera
                    return true;
                  }
                  break;
              }
            }
            return false;
          }
        });

    myWebView.setWebViewClient(
        new WebViewClient() { // Sets the WebViewClient that will receive various notifications and
          // requests.
          public void onReceivedError(
              WebView view, int errorCode, String description, String failingUrl) {}

          @Override
          public void onPageStarted(
              WebView view,
              String url,
              Bitmap favicon) { // override que se ejecuta cando la pagina empieza a cargara
            /** Se muestra el ProgressDialog al iniciar la carga de la web */
            dialog.show(); // se muestra el progress dialog

            if (myWebView.getUrl()
                != myWebView.getOriginalUrl()) { // Si el url es diferente al original se hara zoom
              myWebView
                  .getSettings()
                  .setSupportZoom(
                      true); // Sets whether the WebView should support zooming using its on-screen
              // zoom controls and gestures.
              myWebView.setInitialScale(100); // Zoom a la escala de 100
            }
          }

          @Override
          public void onPageFinished(
              WebView view,
              String url) { // override que se ejecuta cuando la pagina acaba de cargar
            /** Se quita el progresDialog al terminar de cargar la web */
            dialog.dismiss(); // Se cancela el progress dialog
          }

          @Override
          public boolean shouldOverrideUrlLoading(WebView view, String url) {
            return false;
          } // Give the host application a chance to take over the control when a new url is about
          // to be loaded in the current WebView.
        });

    return c; // Se retorna el View
  }
コード例 #11
0
  private void bindData() {
    // reference
    final WebView webView = (WebView) mRootView.findViewById(R.id.fragment_example_webview);

    // webview settings
    webView.getSettings().setBuiltInZoomControls(true);
    webView.getSettings().setSupportZoom(true);
    webView.getSettings().setDefaultZoom(ZoomDensity.MEDIUM);
    webView.getSettings().setCacheMode(WebSettings.LOAD_NO_CACHE);
    webView.getSettings().setJavaScriptEnabled(true);
    webView.getSettings().setPluginState(WebSettings.PluginState.ON);
    webView.setBackgroundColor(getResources().getColor(R.color.global_bg_front));
    webView.setScrollBarStyle(WebView.SCROLLBARS_OUTSIDE_OVERLAY); // fixes scrollbar on Froyo
    webView.setWebChromeClient(
        new WebChromeClient()); // http://stackoverflow.com/questions/8541443/whats-causing-this-nullpointerexception
    webView.setWebViewClient(
        new WebViewClient() {
          @Override
          public void onPageFinished(WebView view, String url) {
            if (getActivity() != null) {
              Toast.makeText(getActivity(), mUrl, Toast.LENGTH_LONG).show();
              mStatefulLayout.showContent();
            }
          }

          @Override
          public void onReceivedError(
              WebView view, int errorCode, String description, String failingUrl) {
            if (getActivity() != null) {
              webView.loadUrl("about:blank");
              Toast.makeText(getActivity(), errorCode + ": " + description, Toast.LENGTH_LONG)
                  .show();
              mStatefulLayout.showEmpty();
            }
          }

          @Override
          public boolean shouldOverrideUrlLoading(WebView view, String url) {
            if (url != null && (url.startsWith("http://") || url.startsWith("https://"))) {
              view.getContext().startActivity(new Intent(Intent.ACTION_VIEW, Uri.parse(url)));
              return true;
            } else {
              return false;
            }
          }
        });
    webView.setOnKeyListener(
        new OnKeyListener() {
          @Override
          public boolean onKey(View v, int keyCode, KeyEvent event) {
            if (event.getAction() == KeyEvent.ACTION_DOWN) {
              WebView webView = (WebView) v;

              switch (keyCode) {
                case KeyEvent.KEYCODE_BACK:
                  if (webView.canGoBack()) {
                    webView.goBack();
                    return true;
                  }
                  break;
              }
            }

            return false;
          }
        });
    webView.requestFocus(
        View
            .FOCUS_DOWN); // http://android24hours.blogspot.cz/2011/12/android-soft-keyboard-not-showing-on.html
    webView.setOnTouchListener(
        new 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;
          }
        });

    // load web url
    mStatefulLayout.showProgress();
    webView.loadUrl(mUrl);
  }
コード例 #12
0
  @SuppressLint("JavascriptInterface")
  public void inintView() {
    findViewById(R.id.img_back).setOnClickListener(this);
    tileView = (TextView) findViewById(R.id.tv_video_name);
    mWebView = (WebView) findViewById(R.id.webWiew);
    mWebView.getSettings().setDomStorageEnabled(true);
    mWebView.getSettings().setJavaScriptEnabled(true);
    mWebView.setWebViewClient(new webViewClient() {});
    mWebView.setWebChromeClient(
        new WebChromeClient() {
          @Override
          public void onReceivedTitle(WebView view, String title) {
            super.onReceivedTitle(view, title);
            tileView.setText(title);
          }
        });
    mWebView.loadUrl(mWebUrl);

    // mWebView.addJavascriptInterface(new Object() {
    // @JavascriptInterface
    // public void clickOnAndroid(final String name, final String detail,
    // final String money) {
    // mHandler.post(new Runnable() {
    // public void run() {
    // // PayDemoActivity.aliPay(getActivity(), mHandler, name,
    // // detail, money);
    // // LogUtils.d("clickOnAndroid------" + name + "---" +
    // // detail + "---" + money);
    // }
    // });
    // }
    //
    // }, "pay");

    mWebView.addJavascriptInterface(
        new Object() {
          @JavascriptInterface
          public void clickOnAndroid(final boolean argree) {
            LogUtils.d("argreement==" + argree);
            mHandler.post(
                new Runnable() {
                  public void run() {
                    Utils.toast(AgreementActivity.this, "您已经同意了本协议");
                    LogUtils.d("argreement==" + argree);
                  }
                });
          }
        },
        "argreement");

    // 点击后退按钮,让WebView后退一页(也可以覆写Activity的onKeyDown方法)
    mWebView.setOnKeyListener(
        new View.OnKeyListener() {
          @Override
          public boolean onKey(View v, int keyCode, KeyEvent event) {
            if (event.getAction() == KeyEvent.ACTION_DOWN) {
              if (keyCode == KeyEvent.KEYCODE_BACK && mWebView.canGoBack()) { // 表示按返回键时的操作
                mWebView.goBack(); // 后退
                // webview.goForward();//前进
                return true; // 已处理
              }
            }
            return false;
          }
        });
  }