我正在使用webview将数据从服务器加载到设备。但它没有加载像Moto x和一些设备加载的少数设备但是当从webview页面转到另一页面并返回到同一页面然后webview内容丢失。这发生在Xperia z.Other设备三星,Xiomi everthing工作正常。< / p>
问题是什么以及如何解决这个问题所以webview数据可以很好地呈现所有设备。
LOGCAT - :
[AdapterInputConnection.java:499] finishComposingText
D/cr_Ime: [AdapterInputConnection.java:499] finishComposingText
D/cr_Ime: [AdapterInputConnection.java:145] Constructor called with outAttrs: inputType=0xa1 imeOptions=0x12000000 privateImeOptions=null
D/cr_Ime: actionLabel=null actionId=0
D/cr_Ime: initialSelStart=0 initialSelEnd=0 initialCapsMode=0x0
D/cr_Ime: hintText=null label=null
D/cr_Ime: packageName=com.org.AmarUjala.news fieldId=-1 fieldName=null
D/cr_Ime: extras=null
D/cr_Ime: [AdapterInputConnection.java:499] finishComposingText
D/cr_Ime: [AdapterInputConnection.java:499] finishComposingText
这里是Xml代码
<WebView
android:id="@+id/storyText"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginLeft="5dp"
android:layout_marginRight="5dp"
android:lineSpacingExtra="3dp"
android:scrollbars="none"
android:visibility="gone"
android:textColor="@color/black" />
这是Java代码:
int currentApi = android.os.Build.VERSION.SDK_INT;
mWebView.setInitialScale(0);
mWebView.requestFocus(View.FOCUS_DOWN);
mWebView.requestFocusFromTouch();
WebSettings settings = mWebView.getSettings();
settings.setJavaScriptEnabled(true);
settings.setBuiltInZoomControls(true);
settings.setJavaScriptCanOpenWindowsAutomatically(true);
settings.setDomStorageEnabled(true);
settings.setLoadsImagesAutomatically(true);
settings.setSupportZoom(false);
settings.setAppCacheEnabled(false);
settings.setSavePassword(false);
settings.setPluginState(WebSettings.PluginState.ON);
settings.setLoadsImagesAutomatically(true);
settings.setAllowFileAccess(true);
mWebView.getSettings().setJavaScriptEnabled(true);
mWebView.loadDataWithBaseURL("", ftext,"text/html",utf-8,"");
mWebView.setVisibility(View.VISIBLE);
答案 0 :(得分:0)
有些配置没有任何区别,也许您可以删除它们:
mWebView.setInitialScale(0); // This is 0 by default scale
settings.setAppCacheEnabled(false); // This is false by default
settings.setLoadsImagesAutomatically(true); //This is twice
settings.setLoadsImagesAutomatically(true); //This is twice
settings.setPluginState(WebSettings.PluginState.ON); // This is deprecated since API level 18
如果那些给您带来麻烦的设备在API级别18+上运行,则可能是上述问题。
然后,即使您使用此方法,您似乎也没有从URL加载内容:
mWebView.loadDataWithBaseURL("", ftext,"text/html",utf-8,""); //The first parameter is empty and could lead to 'about:blank'
如果从远程服务器加载并且有url,请使用loadDataWithBaseURL,否则如果从本地加载,则使用其他方法,如:
webview.loadData(summary, "text/html", null);
修改强> 然后根据您的最新评论,我会保存用户在集合中导航的Url,甚至将scrollY保存在这些特定设备中。然后听Back按钮并浏览这些设备中的保存URL,如果需要,在每个页面上重新加载页面。