Android Open Source - HybridFramework_for_HTML5_Android Web View Client Hfh






From Project

Back to project page HybridFramework_for_HTML5_Android.

License

The source code is released under:

GNU General Public License

If you think the Android project HybridFramework_for_HTML5_Android listed in this page is inappropriate, such as containing malicious code/tools or violating the copyright, please email info at java2s dot com, thanks.

Java Source Code

package com.blogspot.techzealous.hybridframework_for_html5.utils;
//  w  w  w.  ja v  a2 s .  c  om
import android.app.Activity;
import android.content.Context;
import android.os.Handler;
import android.os.Looper;
import android.util.Log;
import android.webkit.WebView;
import android.webkit.WebViewClient;
import android.widget.LinearLayout;

public class WebViewClientHfh extends WebViewClient {

  private final String LOG = "WebViewClientHfh";
  private final String THREAD_WORKER_NAME = "WebViewClientHfh_worker";
  
  private Thread mThreadWorker;
  private Runnable mRunnableWorker;
  private Handler mHandlerWorker;
  private BridgeHelper mBridgeHelper;
  
  public WebViewClientHfh (Activity aAct, Context aCtx, LinearLayout aLinearLayoutMain, WebView aWebView) {
    super();
    Handler handlerMain = new Handler();
    mBridgeHelper = new BridgeHelper(aAct, aCtx, aLinearLayoutMain, aWebView, handlerMain);
  }
  
  @Override
    public boolean shouldOverrideUrlLoading(WebView view, String url) {
      Log.i(LOG, "shouldLoadUrl url=" + url);
      if (url.startsWith(ConstantsHfh.HFH_SCHEMA_PREFIX)) {
            //do not load the page
        final String strUrl = url;
        mHandlerWorker.post(new Runnable() {
          public void run() {
            mBridgeHelper.callNativeMethod(strUrl);
          }
        });
            return true;
        }
        //load the page
        return false;
    }
  
  public Handler getHandlerWorker() {
    return mHandlerWorker;
  }
  
  public BridgeHelper getBridgeHelper() {
    return mBridgeHelper;
  }
  
  public void startThreadWorker() {
    mRunnableWorker = new Runnable() {
      @Override
      public void run() {
        Looper.prepare();
        mHandlerWorker = new Handler();
        Looper.loop();
      }
    };
    mThreadWorker = new Thread(mRunnableWorker, THREAD_WORKER_NAME);
    mThreadWorker.start();
  }
}




Java Source Code List

com.blogspot.techzealous.hybridframework_for_html5.MainActivity.java
com.blogspot.techzealous.hybridframework_for_html5.utils.BridgeHelper.java
com.blogspot.techzealous.hybridframework_for_html5.utils.BridgeListener.java
com.blogspot.techzealous.hybridframework_for_html5.utils.ConstantsHfh.java
com.blogspot.techzealous.hybridframework_for_html5.utils.InstanceData.java
com.blogspot.techzealous.hybridframework_for_html5.utils.WebViewClientHfh.java