---------- Forwarded message ----------
From: medlamine Semassel <[email protected]>
Date: 2016-03-30 16:37 GMT+02:00
Subject: #Baleboy #v17 slowless
To: [email protected]



---------- Forwarded message ----------
From: medlamine Semassel <[email protected]>
Date: 2016-03-21 17:52 GMT+01:00
Subject: Slowness with xwalkview 17 on Android
To: [email protected]


Hi,

I was following with you this issue on Tweeter @LamineMEHD.

The problem is the xwalk_core-library 17 is slowest very slow, I switch to
the 16 and I delete xwalksetting function ( User Agent ) and the view is
loading very well.

find blow a simple of my webview


public class MyNewWebView extends XWalkView {

    private static final String TAG = "KWebView";
    private static final String URL_LOGO =
"file:///android_asset/www/LogoLM.png";
    private String mDefaultUrl;
    private Integer mRefreshInterval;
    private String mNumSite;
    private Handler mTimer;
    private Runnable mRefreshWebViewTask;

    public void setTracker(Tracker tracker) {
        Tracker tracker1 = tracker;
    }

    public MyNewWebView(Context context, AttributeSet attrs) {
        super(context, attrs);
        this.clearCache(true);
        this.setResourceClient(new MyResourceClient(this));
        this.setUIClient(new MyUIClient(this));
    }

    public String getDefaultUrl() {
        return mDefaultUrl;
    }

    public void loadDefaultUrl() {
        if (mDefaultUrl != null) {
            resetRefreshTimer();
            //Cookies
            try {
                URL url = new URL(this.getDefaultUrl());
                String[] splitedUrlDomain =
url.getHost().split(Pattern.quote("."));
                if (splitedUrlDomain.length >= 2) {
                    String urlDomain =
splitedUrlDomain[splitedUrlDomain.length - 2] + "." +
splitedUrlDomain[splitedUrlDomain.length - 1];

                    XWalkCookieManagerInternal xWalkCookieManager =
new XWalkCookieManagerInternal();
                    xWalkCookieManager.setAcceptCookie(true);
                    xWalkCookieManager.setAcceptFileSchemeCookies(true);
                    xWalkCookieManager.setCookie(url.getProtocol() +
"://" + url.getHost(), "tabLM=" + this.mNumSite + " ; Domain=." +
urlDomain);
                    xWalkCookieManager.flushCookieStore();


                    Log.d(TAG, "cookie ------>" +
xWalkCookieManager.getCookie(url.getProtocol() + "://" +
url.getHost()));
                } else {
                    Log.e(TAG, "cannot create cookie for " +
this.getDefaultUrl());
                }
            } catch (MalformedURLException e) {
                Log.e(TAG, e.toString());
            }
            this.load(mDefaultUrl, null);
        } else {
            this.load(URL_LOGO, null);
        }
    }


    public void resetRefreshTimer() {
        if (mRefreshInterval != 0) {
            if (mTimer != null)
                mTimer.removeCallbacks(mRefreshWebViewTask);
            mTimer = new Handler();
            mRefreshWebViewTask = new Runnable() {
                @Override
                public void run() {
                    // On lance le raffraichissement dans le thread UI
                    ((Activity) getContext()).runOnUiThread(new Runnable() {
                        public void run() {
                            Log.i(TAG, "Raffraichissement demandée de
la webview ");
                            loadDefaultUrl();


                        }
                    });
                }
            };
            // lancement de la tache toutes mRefreshInterval min
            mTimer.postDelayed(mRefreshWebViewTask, 1000 * 60 *
mRefreshInterval);
        }
    }

    public void setRefreshInterval(Integer refreshInterval) {
        mRefreshInterval = refreshInterval;
    }

    public void setOverrideUrl(Boolean overrideUrl) {
        Boolean overrideUrl1 = overrideUrl;
    }

    public void setNumSite(String numSite) {
        mNumSite = numSite;
    }

    public void setAuthorizedDomains(String domains) {
        String domains1 = domains;
    }

    public void setDefaultUrl(String defaultUrl) {
        mDefaultUrl = defaultUrl;
    }

    public class MyResourceClient extends XWalkResourceClient {

        public MyResourceClient(XWalkView view) {
            super(view);
        }


       @Override
        public void onReceivedSslError(XWalkView view,
ValueCallback<Boolean> callback, SslError error) {
            Log.d("DEBUG", "onReceivedSslError");
            //désactive les erreurs SSL
            //TODO : rajouter les certificats ADEO dans le keystore
            callback.onReceiveValue(true);
        }

        @Override
        public boolean shouldOverrideUrlLoading(XWalkView xWalkView,
String url) {

            if (url.contains("youtube")) {
                Log.d("Mohamed", url);
                /** Le Toast pour les URLs Interdites **/
                Toast.makeText(getContext(), "This Link is Forbiden",
Toast.LENGTH_LONG).show();
                return true;
            }
            Log.d("Vincent", url);
            return false;
        }

        @Override
        public XWalkWebResourceResponse
shouldInterceptLoadRequest(XWalkView view, XWalkWebResourceRequest
request) {
            Log.d("yeah", request.getUrl().toString());
            return super.shouldInterceptLoadRequest(view, request);
        }
    }

    class MyUIClient extends XWalkUIClient {
        MyUIClient(XWalkView view) {
            super(view);
        }

        @Override
        public void onFullscreenToggled(XWalkView view, boolean
enterFullscreen) {
            super.onFullscreenToggled(view, enterFullscreen);
            view.hasEnteredFullscreen();
        }

    }
}

and

public class MyWebViewFragment extends Fragment {
    private MyNewWebView mXWalkView;
    private static final String TAG         = "KFragment";
    public static final String ARG_URL      = "url";
    public static final String ARG_NAME     = "name";
    public static final String ARG_ZOOM     = "ZOOM";
    public static final String ARG_REFRESH  = "REFRESH";
    public static final String ARG_OVERRIDE = "OVERRIDE";
    public static final String ARG_DOMAINS  = "DOMAINS";
    public static final String ARG_NUMSITE  = "NUMSITE";
    public static final String ARG_UA       = "UA";
    public static final String ARG_APPEND   = "APPEND";





    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup
container, Bundle savedInstanceState) {

        Bundle args = getArguments();
        MyApp app = (MyApp) getActivity().getApplication();
        View v = inflater.inflate(R.layout.webview_fragment, null);
        mXWalkView = (MyNewWebView) v.findViewById(R.id.webView);
        XWalkPreferences.setValue("enable-javascript", true);
        XWalkPreferences.setValue(XWalkPreferences.REMOTE_DEBUGGING, true);
        
XWalkPreferences.setValue(XWalkPreferences.ALLOW_UNIVERSAL_ACCESS_FROM_FILE,
true);
        XWalkPreferences.setValue(XWalkPreferences.JAVASCRIPT_CAN_OPEN_WINDOW,
true);
        XWalkPreferences.setValue(XWalkPreferences.SUPPORT_MULTIPLE_WINDOWS,
true);

        mXWalkView.setLayerType(View.LAYER_TYPE_HARDWARE, null);


        if (args.getString(ARG_UA) != "") {

            mXWalkView.getSettings().setUserAgentString(args.getString(ARG_UA));
        }else if (args.getString(ARG_APPEND) != "") {
            
mXWalkView.getSettings().setUserAgentString(mXWalkView.getSettings().getUserAgentString()
+ " " + args.getString(ARG_APPEND));
        }

        mXWalkView.setDefaultUrl(args.getString(ARG_URL));
        //Récupère la valeur zoom du JSON sinon 100%
        mXWalkView.getSettings().setInitialPageScale((float)
args.getInt(ARG_ZOOM, 100));
        mXWalkView.setOverrideUrl(args.getBoolean(ARG_OVERRIDE));
        //Récupère la valeur refresh du JSON sinon 0 sec
        mXWalkView.setRefreshInterval(args.getInt(ARG_REFRESH, 0));
        mXWalkView.setNumSite(String.format("%03d", args.getInt(ARG_NUMSITE)));
        mXWalkView.setAuthorizedDomains(args.getString(ARG_DOMAINS));
        mXWalkView.setTracker(app.getTracker());
        mXWalkView.loadDefaultUrl();


        mXWalkView.setOnTouchListener(new View.OnTouchListener() {
            @Override
            public boolean onTouch(View v, MotionEvent event) {
                int action = event.getActionMasked();
                switch (action) {
                    case MotionEvent.ACTION_DOWN:
                        mXWalkView.resetRefreshTimer();


                        break;
                }
                return false;
            }
        });

        return v;
    }

    public void refreshWebView() {
        if (mXWalkView != null)
            mXWalkView.loadDefaultUrl();
    }

    public void navigateBack() {
        mXWalkView.clearCache(true);
    }

    @Override
    public void onDetach() {
        super.onDetach();
        mXWalkView.onDestroy();
    }
}




----------------------


-- 
Cordialement Medlamine



-- 
Cordialement Medlamine



-- 
Cordialement Medlamine
_______________________________________________
Crosswalk-help mailing list
[email protected]
https://lists.crosswalk-project.org/mailman/listinfo/crosswalk-help

Reply via email to