android 的导入crosswalk 用xwalkview 替换webview

1 篇文章 0 订阅
1 篇文章 0 订阅

用过webvIew开发的各位伙伴应该知道,同样的html代码在ios手机上运行无压力,但是在android手机上运行,慢的要死。还会有各种奇怪的蛋碎问题。后来查阅了很多文章,决定使用crosswalk替换webview。 具体crosswalk是什么大家百度吧,简单讲就是一个浏览器内核。比webview速度快,兼容性也好。

下面就是介绍下导入的方式。导入方式建议参考官方文档https://crosswalk-project.org/documentation/android.html  这里不再多说,这篇文章主要讲遇到的问题和解决方法。

这是中文版的导入方式https://software.intel.com/zh-cn/articles/v 

需要说明的是,导入后会报错,开始我也不知道是什么原因,最后发现是android target版本太低,就是android sdk我用的是19后来把target换成22就没有问题了。就是android 5.1

另外一点,用webview的时候会用到setWebViewClient 方法 xwalkview 对应的方法 官方说是setResourceClient  但是我试了以下 个人感觉用setUIClient比较好。因为用webview的时候。我经常会用到 mWebView.setWebViewClient(new WebViewClient(){
            public void onPageStarted(WebView view, String url, Bitmap favicon) {
                customProgressDialog = CustomProgressDialog.createDialog(LogActivity.this);
                customProgressDialog.show();
            }
            public void onPageFinished(WebView view, String url) {
                customProgressDialog.dismiss();
            }
        });


在onLoadFinished和onLoadStarted中写一些方法和效果,但是用xwalkview是 同样想实现某些效果只能用

mXWalkView.setUIClient(new XWalkUIClient(mXWalkView){
            public void onPageLoadStarted(XWalkView view,String url){
                Log.i("mXWalkView onPageLoadStarted",url);


                //加载中 请稍后
                customProgressDialog = CustomProgressDialog.createDialog(LogActivity.this);
                customProgressDialog.show();
            }
            public void  onPageLoadStopped(XWalkView view,String url,XWalkUIClient.LoadStatus status){
                Log.i("mXWalkView onPageLoadStopped",url);
                customProgressDialog.dismiss();
                if(url.equals("file:///android_asset/html/docs/login.html#")){
                    canGoBack = false;
                    Log.i("mXWalkView onPageLoadStarted","canGoBack"+canGoBack);
                   // mXWalkView.load("file:///android_asset/html/docs/login.html",null);
                    mXWalkView.getNavigationHistory().clear();
                }
            }
        });


所以个人比较推荐用setUIClient方法  另外,用一个问题 至今没有解决

就是在使用xwalkview时, 无法禁用android的back键 还请各位大神知道的留言告诉我。

最后我用的是mXWalkView.getNavigationHistory().clear(); 方法,清空历史记录,这样再点击back键 就没有效果了。页面就不会跳转。

个人觉得国内用crosswalk的还是有一些的 但是文章很少,因为时间问题,不能写特别详细的步骤,希望大家体谅和支持。

  • 3
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 8
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 8
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值