---------- 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
