Używam webview w mojej aplikacji na Androida, jednak po zakończeniu ładowania - które mogę wykryć przez onPageFinished (Webview webview, String url) - strona stale rośnie w nieskończoność.WebView w nieskończoność rozszerza się - w jaki sposób można temu zapobiec?
Jak mogę temu zapobiec?
Oto, co robię.
Mam ogólny szablon strony, który zawiera ScrollView. Szerokość i wysokość są ustawione tak, aby pasowały do rodzica. Wewnątrz ScrollView znajduje się kilka wspólnych elementów dla wszystkich działań, które tworzę. Jednym z nich jest LinearLayout, w którym wstawiam całą zawartość użytkownika.
..... <ScrollView android:layout_width="match_parent" android:layout_height="match_parent" android:layout_centerInParent="true" android:layout_margin="0dp" android:padding="0dp" android:scrollbars="none" > ...... <LinearLayout android:id="@+id/content" android:layout_width="fill_parent" android:layout_height="wrap_content" android:layout_margin="0dp" android:padding="0dp" android:orientation="vertical"> //EVERY USER CONTENT GOES HERE </LinearLayout> ...... </ScrollView>
.....
W tym szczególnym przypadku, gdy treść jest strona internetowa, która ładuje mapy Google za pomocą Mobile Web API. Oto plik układ
<?xml version="1.0" encoding="utf-8"?> <WebView android:id="@+id/maps" android:layout_width="fill_parent" android:layout_height="wrap_content" android:layout_centerInParent="true" android:layout_margin="0dp" android:padding="0dp" />
Oto kod mojego działania, które inicjuje Webview
.... WebView wv = (WebView) this.content.findViewById (R.id.maps) ;
WebSettings ws = wv.getSettings();
ws.setPluginState(PluginState.ON); ws.setSupportZoom(false); ws.setLightTouchEnabled(true); ws.setDomStorageEnabled(true); ws.setAppCacheMaxSize(1024 * 1024 * 8); ws.setAppCachePath(context.getCacheDir().getAbsolutePath()); ws.setAppCacheEnabled(true); ws.setAllowFileAccess(true); ws.setCacheMode(WebSettings.LOAD_NORMAL); ws.setJavaScriptEnabled(true); wv.setInitialScale(0); wv.addJavascriptInterface(new Object(), "Android"); wv.setKeepScreenOn(true);
Wreszcie, kiedy załadować mapy poprzez wv.loadUrl ("......");
po stronie kończy ładowanie uzyskać następujące dzienniki i WebView rośnie w nieskończonej pętli
02-18 14:16:06.195: VERBOSE/webview(10904): OnSizeChanged: Enter
02-18 14:16:06.394: VERBOSE/webview(10904): OnSizeChanged: Enter
02-18 14:16:06.480: VERBOSE/webview(10904): OnSizeChanged: Enter
02-18 14:16:06.527: VERBOSE/webview(10904): OnSizeChanged: Enter
02-18 14:16:06.582: VERBOSE/webview(10904): OnSizeChanged: Enter
02-18 14:16:06.632: VERBOSE/webview(10904): OnSizeChanged: Enter
02-18 14:16:06.683: VERBOSE/webview(10904): OnSizeChanged: Enter
02-18 14:16:06.734: VERBOSE/webview(10904): OnSizeChanged: Enter
02-18 14:16:06.785: VERBOSE/webview(10904): OnSizeChanged: Enter
02-18 14:16:06.875: VERBOSE/webview(10904): OnSizeChanged: Enter
02-18 14:16:06.957: VERBOSE/webview(10904): OnSizeChanged: Enter
02-18 14:16:07.058: VERBOSE/webview(10904): OnSizeChanged: Enter
02-18 14:16:07.332: VERBOSE/webview(10904): OnSizeChanged: Enter
02-18 14:16:07.398: VERBOSE/webview(10904): OnSizeChanged: Enter
02-18 14:16:07.449: VERBOSE/webview(10904): OnSizeChanged: Enter
02-18 14:16:07.496: VERBOSE/webview(10904): OnSizeChanged: Enter
02-18 14:16:07.554: VERBOSE/webview(10904): OnSizeChanged: Enter
02-18 14:16:07.605: VERBOSE/webview(10904): OnSizeChanged: Enter
02-18 14:16:07.652: VERBOSE/webview(10904): OnSizeChanged: Enter
02-18 14:16:07.707: VERBOSE/webview(10904): OnSizeChanged: Enter
02-18 14:16:07.742: VERBOSE/webview(10904): OnSizeChanged: Enter
02-18 14:16:07.792: VERBOSE/webview(10904): OnSizeChanged: Enter
02-18 14:16:07.839: VERBOSE/webview(10904): OnSizeChanged: Enter
02-18 14:16:07.902: VERBOSE/webview(10904): OnSizeChanged: Enter
02-18 14:16:07.949: VERBOSE/webview(10904): OnSizeChanged: Enter
02-18 14:16:08.015: VERBOSE/webview(10904): OnSizeChanged: Enter
02-18 14:16:08.066: VERBOSE/webview(10904): OnSizeChanged: Enter
02-18 14:16:08.113: VERBOSE/webview(10904): OnSizeChanged: Enter
02-18 14:16:08.164: VERBOSE/webview(10904): OnSizeChanged: Enter
02-18 14:16:08.214: VERBOSE/webview(10904): OnSizeChanged: Enter
02-18 14:16:08.250: VERBOSE/webview(10904): OnSizeChanged: Enter
02-18 14:16:08.300: VERBOSE/webview(10904): OnSizeChanged: Enter
02-18 14:16:08.335: VERBOSE/webview(10904): OnSizeChanged: Enter
02-18 14:16:08.386: VERBOSE/webview(10904): OnSizeChanged: Enter
02-18 14:16:08.437: VERBOSE/webview(10904): OnSizeChanged: Enter
02-18 14:16:08.484: VERBOSE/webview(10904): OnSizeChanged: Enter
02-18 14:16:08.531: VERBOSE/webview(10904): OnSizeChanged: Enter
02-18 14:16:08.566: VERBOSE/webview(10904): OnSizeChanged: Enter
02-18 14:16:08.613: VERBOSE/webview(10904): OnSizeChanged: Enter
02-18 14:16:08.667: VERBOSE/webview(10904): OnSizeChanged: Enter
02-18 14:16:08.714: VERBOSE/webview(10904): OnSizeChanged: Enter
02-18 14:16:08.750: VERBOSE/webview(10904): OnSizeChanged: Enter
02-18 14:16:08.847: VERBOSE/webview(10904): OnSizeChanged: Enter
02-18 14:16:08.902: VERBOSE/webview(10904): OnSizeChanged: Enter
02-18 14:16:08.949: VERBOSE/webview(10904): OnSizeChanged: Enter
02-18 14:16:09.003: VERBOSE/webview(10904): OnSizeChanged: Enter
02-18 14:16:09.035: VERBOSE/webview(10904): OnSizeChanged: Enter
02-18 14:16:09.085: VERBOSE/webview(10904): OnSizeChanged: Enter
02-18 14:16:09.121: VERBOSE/webview(10904): OnSizeChanged: Enter
02-18 14:16:09.167: VERBOSE/webview(10904): OnSizeChanged: Enter
02-18 14:16:09.218: VERBOSE/webview(10904): OnSizeChanged: Enter
02-18 14:16:09.253: VERBOSE/webview(10904): OnSizeChanged: Enter
02-18 14:16:09.304: VERBOSE/webview(10904): OnSizeChanged: Enter
02-18 14:16:09.367: VERBOSE/webview(10904): OnSizeChanged: Enter
02-18 14:16:09.417: VERBOSE/webview(10904): OnSizeChanged: Enter
02-18 14:16:09.476: VERBOSE/webview(10904): OnSizeChanged: Enter
02-18 14:16:09.523: VERBOSE/webview(10904): OnSizeChanged: Enter
02-18 14:16:09.585: VERBOSE/webview(10904): OnSizeChanged: Enter
02-18 14:16:09.632: VERBOSE/webview(10904): OnSizeChanged: Enter
02-18 14:16:09.664: VERBOSE/webview(10904): OnSizeChanged: Enter
02-18 14:16:09.710: VERBOSE/webview(10904): OnSizeChanged: Enter
02-18 14:16:09.765: VERBOSE/webview(10904): OnSizeChanged: Enter
02-18 14:16:09.812: VERBOSE/webview(10904): OnSizeChanged: Enter
02-18 14:16:09.863: VERBOSE/webview(10904): OnSizeChanged: Enter
02-18 14:16:09.894: VERBOSE/webview(10904): OnSizeChanged: Enter
02-18 14:16:09.957: VERBOSE/webview(10904): OnSizeChanged: Enter
02-18 14:16:09.992: VERBOSE/webview(10904): OnSizeChanged: Enter
02-18 14:16:10.042: VERBOSE/webview(10904): OnSizeChanged: Enter
02-18 14:16:10.097: VERBOSE/webview(10904): OnSizeChanged: Enter
02-18 14:16:10.148: VERBOSE/webview(10904): OnSizeChanged: Enter
02-18 14:16:10.179: VERBOSE/webview(10904): OnSizeChanged: Enter
02-18 14:16:10.226: VERBOSE/webview(10904): OnSizeChanged: Enter
02-18 14:16:10.277: VERBOSE/webview(10904): OnSizeChanged: Enter
02-18 14:16:10.328: VERBOSE/webview(10904): OnSizeChanged: Enter
02-18 14:16:10.378: VERBOSE/webview(10904): OnSizeChanged: Enter
02-18 14:16:10.410: VERBOSE/webview(10904): OnSizeChanged: Enter
02-18 14:16:10.460: VERBOSE/webview(10904): OnSizeChanged: Enter
02-18 14:16:10.511: VERBOSE/webview(10904): OnSizeChanged: Enter
02-18 14:16:10.546: VERBOSE/webview(10904): OnSizeChanged: Enter
02-18 14:16:10.597: VERBOSE/webview(10904): OnSizeChanged: Enter
02-18 14:16:10.648: VERBOSE/webview(10904): OnSizeChanged: Enter
02-18 14:16:10.679: VERBOSE/webview(10904): OnSizeChanged: Enter
02-18 14:16:10.730: VERBOSE/webview(10904): OnSizeChanged: Enter
02-18 14:16:10.781: VERBOSE/webview(10904): OnSizeChanged: Enter
02-18 14:16:10.835: VERBOSE/webview(10904): OnSizeChanged: Enter
02-18 14:16:10.886: VERBOSE/webview(10904): OnSizeChanged: Enter
02-18 14:16:10.925: VERBOSE/webview(10904): OnSizeChanged: Enter
02-18 14:16:10.976: VERBOSE/webview(10904): OnSizeChanged: Enter
02-18 14:16:11.011: VERBOSE/webview(10904): OnSizeChanged: Enter
02-18 14:16:11.066: VERBOSE/webview(10904): OnSizeChanged: Enter
02-18 14:16:11.125: VERBOSE/webview(10904): OnSizeChanged: Enter
02-18 14:16:11.183: VERBOSE/webview(10904): OnSizeChanged: Enter
02-18 14:16:11.214: VERBOSE/webview(10904): OnSizeChanged: Enter
02-18 14:16:11.265: VERBOSE/webview(10904): OnSizeChanged: Enter
02-18 14:16:11.320: VERBOSE/webview(10904): OnSizeChanged: Enter
02-18 14:16:11.371: VERBOSE/webview(10904): OnSizeChanged: Enter
02-18 14:16:11.402: VERBOSE/webview(10904): OnSizeChanged: Enter
02-18 14:16:11.453: VERBOSE/webview(10904): OnSizeChanged: Enter
02-18 14:16:11.507: VERBOSE/webview(10904): OnSizeChanged: Enter
02-18 14:16:11.558: VERBOSE/webview(10904): OnSizeChanged: Enter
02-18 14:16:11.589: VERBOSE/webview(10904): OnSizeChanged: Enter
02-18 14:16:11.644: VERBOSE/webview(10904): OnSizeChanged: Enter
.......... This goes on ...........
Zauważyłem, że tak się dzieje, gdy strona zawiera jQuery. Ale ta sama strona ładuje się dobrze w przeglądarce zasobów.
Każdy pomysł, dlaczego tak się dzieje i jak można to naprawić?
Każda znacząca pomoc jest doceniana ... Dzięki.
To oczywiście uniemożliwia widok internetową z coraz większa, ale nie wiem, długość zawartości wcześniej, więc ustalające wysokość jeśli WebView w moim przypadku nie było możliwości od samego początku. –
Swoją drogą próbowałem po prostu załadować "http://m.yahoo.com" (dość ciężką i obciążoną javascriptą stroną) - strona ładuje się, a rozmiar strony internetowej zmienia się, aby idealnie pasował do treści bez żadnych problemów . Zgaduję, że istnieje kombinacja błędu widoku przeglądarki + jQuery. –
Wygląda na to, że ScrollView i WebView nie łączą się ze sobą - kropka. Próbowałem użyć widoku sieci Web poza widokiem przewijania (który bardzo zmienił strukturę moich szablonów dev) - zadziałało. Nadal nie wyjaśnia to faktu, że nieskończenie rosnący dzieje się tylko na stronach, które mają jQuery –