編輯:關於Android編程
之前寫過一篇捕獲Phoengap的webview事件的方法,主要是在實現了CordovaInterface的Activity中, 在onMessage中根據第一個參數的message name來判斷webview的加載事件。不過如果是在Fragment中,一個Activity加載了多個包含了WebView的fragment的話,就無法在onMessage中判斷到底是哪個WebView的加載事件。
經過嘗試,發現,還是可以使用setWebViewClient的方式來,來重寫WebViewClient的對應的onPageStart和onPageFinish等方法來處理加載事件
[java]
CordovaWebView webView = (CordovaWebView)findViewById(R.id.webView);
CordovaWebView webView = (CordovaWebView)findViewById(R.id.webView);[java] view plaincopyprint?CordovaInterface cordovaInterface = (CordovaInterface) context;
CordovaWebViewClient cordovaWebViewClient = new CordovaWebViewClient(cordovaInterface, webView) {
@Override
public void onPageStarted(WebView view, String url, Bitmap favicon) {
LogUtil.debug("onPageStarted " + url);
super.onPageStarted(view, url, favicon);
progressBar.setVisibility(View.VISIBLE);
}
@Override
public void onPageFinished(WebView view, String url) {
LogUtil.debug("onPageFinished " + url);
super.onPageFinished(view, url);
progressBar.setVisibility(View.GONE);
}
@Override
public void onReceivedError(WebView view, int errorCode, String description, String failingUrl) {
LogUtil.debug("onReceivedError " + url);
super.onReceivedError(view, errorCode, description, failingUrl);
progressBar.setVisibility(View.GONE);
errorView.setVisibility(View.VISIBLE);
}
};
webView.setWebViewClient(cordovaWebViewClient);
webView.loadUrl(url);
CordovaInterface cordovaInterface = (CordovaInterface) context;
CordovaWebViewClient cordovaWebViewClient = new CordovaWebViewClient(cordovaInterface, webView) {
@Override
public void onPageStarted(WebView view, String url, Bitmap favicon) {
LogUtil.debug("onPageStarted " + url);
super.onPageStarted(view, url, favicon);
progressBar.setVisibility(View.VISIBLE);
}
@Override
public void onPageFinished(WebView view, String url) {
LogUtil.debug("onPageFinished " + url);
super.onPageFinished(view, url);
progressBar.setVisibility(View.GONE);
}
@Override
public void onReceivedError(WebView view, int errorCode, String description, String failingUrl) {
LogUtil.debug("onReceivedError " + url);
super.onReceivedError(view, errorCode, description, failingUrl);
progressBar.setVisibility(View.GONE);
errorView.setVisibility(View.VISIBLE);
}
};
webView.setWebViewClient(cordovaWebViewClient);
webView.loadUrl(url);
上一篇大概分析了一下FM啟動流程,若不了解Fm啟動流程的,可以去打開前面的鏈接先了解FM啟動流程,接下來我們簡單分析一下FM的搜索頻率流程。 在了解源碼之前,我們先看一下
本教程為大家分享了Android PopupWindow彈出菜單的具體代碼,供大家參考,具體內容如下項目代碼:http://xiazai.jb51.net/201611/
先看下效果圖: 上面是MTextView,下面是默認的TextView。 一、原因 用最簡單的全英文句子為例,如果有一個很長的單詞,這一行剩余的空間顯示不下了,
加入到你的項目中去在 Module 下的 build.gradle 中,加上下面這句:compile 'com.github.youngkaaa:navigati