Se si vuole fare davvero un differenza, ti suggerisco il mio approccio:
Ho eseguito una funzione JavaScript richiamabile per la creazione di un'altra WebView ("Webvie figlio" w ") che avrei usato come un Iframe e riempire con il contenuto, in modo da dall'applicazione JS che potevo fare:
insertWebView (x,y,w,h,"<div>.......</div>").
quello che devi fare un certo lavoro di una volta a stabilish un modo per comunicare entrambi visualizzazioni, ma hai un'idea. Di seguito trovi la fonte della mia funzione insert WebView per l'ispirazione.
il miglioramento è stato eccezionale, così come quelle piccole iframe-visualizzazioni non solo eseguite impressionante, ma roba come l'Overscroll incandescente, multitouch (ora sono diverse visualizzazioni!), Ecc fornito un'esperienza quasi native.
Ho anche eseguito un'estensione per utilizzare il trascinamento nativo tra le visualizzazioni Web.
Probabilmente non era molto efficiente dal punto di vista della memoria, ma in termini di esperienza utente credetemi ne valeva la pena, mille volte.
buona fortuna!
public void insertWebView(int code, int x0, int y0, int w, int h, String url, int vertical, String initContent, String params, int alpha, int rot, int screenId) {
PlasmaWebView webview1 = getWebView(code);
if (webview1 != null) {
if (Conf.LOG_ON) Log.d(TAG, "WEBVIEW: Reusing webview " + code + " at " + x0 + "," + y0 + "," + w + "," + h + " vertical " + vertical+", rot="+rot);
webview1.setVerticalScrollBarEnabled(vertical == 1);
webview1.setHorizontalScrollBarEnabled(vertical != 1);
webview1.move(x0, y0, w, h, Funq.this);
if ((alpha>0) && (alpha<100)) webview1.setAlpha((float)alpha/100);
webview1.setRotation((float)rot/10);
webview1.handleTemplateLoad(url, initContent);
return;
}
if (Conf.LOG_ON) Log.d(TAG, "WEBVIEW: Insert webview " + code + " at " + x0 + "," + y0 + "," + w + "," + h + " vertical " + vertical + " url " + url+" alpha "+alpha+", rot="+rot);
webview1 = new PlasmaWebView(Funq.this.getBaseContext(), code, vertical==1, useHardware, jvs, screenId);
if ((alpha>0) && (alpha<100)) webview1.setAlpha((float)alpha/100);
webview1.setRotation((float)rot/10);
RelativeLayout.LayoutParams p=webview1.createLayout(x0, y0, w, h, Funq.this);
layerContainer.addView(webview1, p);
webview1.handleTemplateLoad(url, initContent);
}
Potreste trovare alcune risposte qui: http://touchpunch.furf.com/ – EliSherer