有XWalkView webviewclient吗?
Is there a XWalkView webviewclient?
我正在尝试使用 XWalkView 作为我的 android 应用程序中的 webview 替代品。我注意到 XWalkView 对象上没有 setWebViewClient
方法。问题是我想检查页面何时完成 (onPageFinished
) 以及何时加载资源 (onLoadResource
)。我如何使用 XWalkView 执行此操作?
我使用本教程嵌入 XWalkView
embed crosswalk in android studio
Cross Walk API 为每个组件引入了自己的名称。不仅 WebView
被重命名为 XWalkView
,而且 WebViewClient
的对应名称也被命名为 XWalkResourceClient
和 WebChromeClient
- XWalkUIClient
。因此,您应该使用 setResourceClient
方法并将 XWalkResourceClient
实例传递给它,而不是 setWebViewClient
。在此对象中,您可以实现一些必需的方法,例如 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);
}
我正在尝试使用 XWalkView 作为我的 android 应用程序中的 webview 替代品。我注意到 XWalkView 对象上没有 setWebViewClient
方法。问题是我想检查页面何时完成 (onPageFinished
) 以及何时加载资源 (onLoadResource
)。我如何使用 XWalkView 执行此操作?
我使用本教程嵌入 XWalkView
embed crosswalk in android studio
Cross Walk API 为每个组件引入了自己的名称。不仅 WebView
被重命名为 XWalkView
,而且 WebViewClient
的对应名称也被命名为 XWalkResourceClient
和 WebChromeClient
- XWalkUIClient
。因此,您应该使用 setResourceClient
方法并将 XWalkResourceClient
实例传递给它,而不是 setWebViewClient
。在此对象中,您可以实现一些必需的方法,例如 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);
}