Thanks, Francesco It's slow for both startup and performances ( exemple : delay when I am using text fields ( more the 5 secondes, slownless after the startup again when we navigate on the webview).
2016-04-04 11:28 GMT+02:00 Balestrieri, Francesco < [email protected]>: > Could you explain a bit more what the slowness is exactly? Is it slow > startup time, slow animation performance, etc.? > > From: Crosswalk-help <[email protected]> > on behalf of medlamine Semassel <[email protected]> > Date: Wednesday 30 March 2016 18:01 > To: "[email protected]" < > [email protected]> > Subject: [Crosswalk-help] Fwd: #Baleboy #v17 slowless > > > ---------- 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 > > --------------------------------------------------------------------- > Intel Finland Oy > Registered Address: PL 281, 00181 Helsinki > Business Identity Code: 0357606 - 4 > Domiciled in Helsinki > > This e-mail and any attachments may contain confidential material for > the sole use of the intended recipient(s). Any review or distribution > by others is strictly prohibited. If you are not the intended > recipient, please contact the sender and delete all copies. > -- Cordialement Medlamine
_______________________________________________ Crosswalk-help mailing list [email protected] https://lists.crosswalk-project.org/mailman/listinfo/crosswalk-help
