Я разместил веб-просмотр в своем действии.Android: сохранить данные веб-просмотра для следующего использования, например, кокетливые
webview загружает страницу TelegramWeb.
, когда я вхожу в учетную запись телеграммы, он отлично работает.
, но когда я поворачиваю экран или снова открываю приложение, он забывает все данные и нуждается в переходе на учетную запись телеграммы.
поэтому мне нужно сохранить некоторые данные, такие как coockies и другие необходимые файлы.
я использовал setJavaScriptEnabled = истина и некоторые другие настройки ниже:
@SuppressLint("SetJavaScriptEnabled") public class SubActivity extends Activity {
private WebView wv1;
protected void onSaveInstanceState(Bundle outState) {
wv1.saveState(outState);
}
@Override
protected void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_sub);
Button b1=(Button) findViewById(R.id.btnSave);
wv1=(WebView)findViewById(R.id.webView1);
WebSettings ws=wv1.getSettings();
ws.setAllowContentAccess(true);
ws.setAppCacheEnabled(true);
ws.setSaveFormData(true);
wv1.setWebViewClient(new Webview());
wv1.getSettings().getCacheMode();
wv1.getSettings().getAllowContentAccess();
wv1.getSettings().getSaveFormData();
wv1.getSettings().setLoadsImagesAutomatically(true);
wv1.getSettings().setJavaScriptEnabled(true);
wv1.setScrollBarStyle(View.SCROLLBARS_INSIDE_OVERLAY);
wv1.getSettings().setJavaScriptCanOpenWindowsAutomatically(true);
wv1.getSettings().setAllowFileAccess(true);
wv1.getSettings().setDomStorageEnabled(true);
wv1.setSaveEnabled(true);
if (savedInstanceState != null)
wv1.restoreState(savedInstanceState);
else
wv1.loadUrl("https://web.telegram.org/#/im");
b1.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View arg0) {
Toast.makeText(getBaseContext(), wv1.getUrl().toString(), Toast.LENGTH_LONG).show();
}
});
}
}
, но все-таки нужно повторно войти в аккаунт.
лучше знать, что класс SubActivity начинается с MainActivity после проверки пароля.
------
примечание:
я добавил этот код после wf1.loadUrl и работает на поворот экрана.
wv1.saveState(savedInstanceState);
но все еще не работает, когда закрывает приложение и открывает его снова. поэтому мне нужно снова зарегистрироваться. Я думаю, что мне нужно сохранить InstanceState где-то. как я могу это сделать?
Я думаю, что я должен сериализовать Bundle, чтобы сэкономить. или отнести его к объекту, затем сериализуйте его, поэтому, когда мне это нужно, его можно десериализовать, а затем сбрасывать в Bundle. Является ли это возможным? –