zoukankan      html  css  js  c++  java
  • xwalk内核集成

    aar下载地址:https://download.01.org/crosswalk/releases/crosswalk/android/maven2/org/xwalk/xwalk_core_library/

    集成步骤:

    1,aar引入项目

    implementation files('libs\xwalk_core_library-23.53.589.4-arm.aar')

    2,布局添加XWalkView

    <org.xwalk.core.XWalkView
            android:id="@+id/xwalkview"
            android:layout_width="match_parent"
            android:layout_height="match_parent">
    </org.xwalk.core.XWalkView>
    

      

    3,activity继承XWalkActivity,并且在onXWalkReady()方法内或者之后进行XWalkView的设置和加载url动作

    package com.example;
    
    import android.net.http.SslError;
    import android.os.Bundle;
    import android.support.annotation.Nullable;
    import android.webkit.ValueCallback;
    
    import com.example.h5demox5.R;
    
    import org.xwalk.core.ClientCertRequest;
    import org.xwalk.core.XWalkActivity;
    import org.xwalk.core.XWalkHttpAuthHandler;
    import org.xwalk.core.XWalkJavascriptResult;
    import org.xwalk.core.XWalkResourceClient;
    import org.xwalk.core.XWalkSettings;
    import org.xwalk.core.XWalkUIClient;
    import org.xwalk.core.XWalkView;
    import org.xwalk.core.XWalkWebResourceRequest;
    import org.xwalk.core.XWalkWebResourceResponse;
    
    public class xWalkWebActivity extends XWalkActivity {
        XWalkView mXWalkView;
    
        @Override
        protected void onXWalkReady() {
            XWalkSettings mWebSettings = mXWalkView.getSettings();
            mWebSettings.setSupportZoom(true);//支持缩放
            mWebSettings.setBuiltInZoomControls(true);//可以任意缩放
            mWebSettings.setLoadWithOverviewMode(true);
            mWebSettings.setUseWideViewPort(true);////将图片调整到适合webview的大小
    //        mWebSettings.setDefaultTextEncodingName("utf-8");
            mWebSettings.setLoadsImagesAutomatically(true);
    //        mWebSettings.setMixedContentMode()
            //调用JS方法.安卓版本大于17,加上注解 @JavascriptInterface
            mWebSettings.setJavaScriptEnabled(true);//支持JS
            mWebSettings.setCacheMode(mWebSettings.LOAD_NO_CACHE);
            mXWalkView.setResourceClient(
                    new XWalkResourceClient(mXWalkView) {
    
                        //=========HTML5定位==========================================================
                        //需要先加入权限
                        //<uses-permission android:name="android.permission.INTERNET"/>
                        //<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"/>
                        //<uses-permission android:name=
                        // "android.permission.ACCESS_COARSE_LOCATION"/>
    
                        @Override
                        public boolean shouldOverrideUrlLoading(XWalkView view, String url) {
                            view.loadUrl(url);
                            return true;
                        }
    
                        @Override
                        public void onReceivedSslError(XWalkView view, ValueCallback<Boolean> callback, SslError error) {
                            super.onReceivedSslError(view, callback, error);
                        }
    
                        @Override
                        public void onLoadFinished(XWalkView view, String url) {
                            super.onLoadFinished(view, url);
                        }
    
                        @Override
                        public void onLoadStarted(XWalkView view, String url) {
                            super.onLoadStarted(view, url);
                        }
    
                        @Override
                        public void onProgressChanged(XWalkView view, int progressInPercent) {
                            super.onProgressChanged(view, progressInPercent);
                        }
    
                        @Override
                        public void onReceivedClientCertRequest(XWalkView view, ClientCertRequest handler) {
                            super.onReceivedClientCertRequest(view, handler);
                        }
    
                        @Override
                        public void onDocumentLoadedInFrame(XWalkView view, long frameId) {
                            super.onDocumentLoadedInFrame(view, frameId);
                        }
    
                        @Override
                        public void onReceivedHttpAuthRequest(XWalkView view, XWalkHttpAuthHandler handler, String host, String realm) {
                            super.onReceivedHttpAuthRequest(view, handler, host, realm);
                        }
    
                        @Override
                        public void onReceivedLoadError(XWalkView view, int errorCode, String description, String failingUrl) {
                            super.onReceivedLoadError(view, errorCode, description, failingUrl);
                        }
    
                        @Override
                        public void onReceivedResponseHeaders(XWalkView view, XWalkWebResourceRequest request, XWalkWebResourceResponse response) {
                            super.onReceivedResponseHeaders(view, request, response);
                        }
                    }
            );
            mXWalkView.setUIClient(new XWalkUIClient(mXWalkView) {
                @Override
                public void onPageLoadStarted(XWalkView view, String url) {
                    super.onPageLoadStarted(view, url);
                }
    
                @Override
                public boolean onJsAlert(XWalkView view, String url, String message, XWalkJavascriptResult result) {
                    return super.onJsAlert(view, url, message, result);
                }
    
                @Override
                public void onScaleChanged(XWalkView view, float oldScale, float newScale) {
                    super.onScaleChanged(view, oldScale, newScale);
                }
    
                @Override
                public void onPageLoadStopped(XWalkView view, String url, LoadStatus status) {
                    super.onPageLoadStopped(view, url, status);
                }
            });
            mXWalkView.loadUrl("https://h5vtest.cmbc.com.cn:7443/server/h5-7.4/");
        }
    
        @Override
        protected void onCreate(@Nullable Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.waklk);
            mXWalkView = findViewById(R.id.xwalkView);
        }
    
        @Override
        public void onPointerCaptureChanged(boolean hasCapture) {
    
        }
    }
    

      

    4,activity添加进AndroidManifest.xml,就可以正常使用XWalkView了

  • 相关阅读:
    清除浮动
    echarts设置小图标位置
    dedecms 顶级栏目内容显示
    dedecms 后台网站 标题设置
    mouseover,mouseenter,mouseout,mouseleave的区别
    texterea 水平居中
    echarts x轴文字换行显示
    echarts 拐点添加图片
    css首行缩进2个字符
    bootstrap 内边框样式
  • 原文地址:https://www.cnblogs.com/fengchuxiaodai/p/13139935.html
Copyright © 2011-2022 走看看