我正嘗試在我的android應用中使用XWalkView作爲webview替換。我注意到在XWalkView對象上沒有setWebViewClient
方法。問題是我想檢查頁面何時完成(onPageFinished
)以及何時加載資源(onLoadResource
)。我怎麼能這樣做XWalkView?是否有XWalkView webviewclient?
我使用本教程
embed crosswalk in android studio
我正嘗試在我的android應用中使用XWalkView作爲webview替換。我注意到在XWalkView對象上沒有setWebViewClient
方法。問題是我想檢查頁面何時完成(onPageFinished
)以及何時加載資源(onLoadResource
)。我怎麼能這樣做XWalkView?是否有XWalkView webviewclient?
我使用本教程
embed crosswalk in android studio
橫走API推出了自己的名字爲每個組件嵌入XWalkView。不僅WebView
重命名爲XWalkView
,而且WebViewClient
也有其對應名爲XWalkResourceClient
和WebChromeClient
- XWalkUIClient
。所以,而不是setWebViewClient
您應該使用setResourceClient
方法並將XWalkResourceClient
實例傳遞給它。在這個對象中,您可以實現一些必需的方法,例如onLoadFinished
。請諮詢Cross Walk API documentation瞭解更多詳情。
WebViewClient例如:
webView.setWebViewClient(new WebViewClient() {
@Override
public void onPageFinished(WebView view, String url) {
super.onPageFinished(view, url);
//Do stuff
}
});
同樣的事情,但使用XWalkView版本:
xWalkView.setResourceClient(new XWalkResourceClient(xWalkView){
@Override
public void onLoadFinished(XWalkView view, String url) {
super.onLoadFinished(view, url);
//Do Stuff
}
});
可以使用ResourceClient。
class ResourceClient extends XWalkResourceClient {
public ResourceClient(XWalkView xwalkView) {
super(xwalkView);
}
public void onLoadStarted(XWalkView view, String url) {
mProgress = (ProgressBar) findViewById(R.id.progressBar);
mProgress.setVisibility(View.VISIBLE);
super.onLoadStarted(view, url);
Log.d("INFO", "Load Started:" + url);
}
public void onLoadFinished(XWalkView view, String url) {
super.onLoadFinished(view, url);
Log.d("INFO", "Load Finished:" + url);
bottomBar = (BottomBar) findViewById(R.id.bottomBar);
mProgress = (ProgressBar) findViewById(R.id.progressBar);
mProgress.setVisibility(View.GONE);
}
public void onProgressChanged(XWalkView view, int progressInPercent) {
super.onProgressChanged(view, progressInPercent);
Log.d("INFO", "Loading Progress:" + progressInPercent);
mProgress = (ProgressBar) findViewById(R.id.progressBar);
mProgress.setProgress(progressInPercent);
}