将网站Cookie永久存储在Android Webview中

时间:2020-07-26 03:07:47

标签: android cookies webview

我想将我的网站Cookie永久存储在我的Android Webview APk中,这样用户每次启动该应用程序时都不必输入登录详细信息。我是新手,请详细告诉我。任何帮助将不胜感激。

1 个答案:

答案 0 :(得分:0)

此代码将为您提供帮助。请看一看(您也可以复制/粘贴代码)

public class MessangerMainFragment extends Fragment{
    WebView telegram_web;

public MessangerMainFragment() {
    // Required empty public constructor
}


@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
                         Bundle savedInstanceState) {
    // Inflate the layout for this fragment
    getActivity().getWindow().addFlags(WindowManager.LayoutParams.FLAG_FORCE_NOT_FULLSCREEN);
    getActivity().getWindow().clearFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN);
    View v = inflater.inflate(R.layout.fragment_messanger_main, container, false);
    setupUI(v);
    init();
    return v;
}

public void init() {
    telegram_web.getSettings().setJavaScriptEnabled(true);
    telegram_web.getSettings().setLoadWithOverviewMode(true);
    telegram_web.getSettings().setCacheMode(WebSettings.LOAD_CACHE_ELSE_NETWORK);
    telegram_web.getSettings().setUseWideViewPort(true);
    telegram_web.getSettings().setDomStorageEnabled(true);
    telegram_web.setWebViewClient(new WebViewClient() {

        @Override
        public boolean shouldOverrideUrlLoading(WebView view, String url) {
            view.loadUrl(url);

            return true;
        }

        @Override
        public void onPageFinished(WebView view, final String url) {
            CookieSyncManager.getInstance().sync();
        }
    });

    telegram_web.loadUrl("https://web.telegram.org/#/im");

}

public void setupUI(View v) {
    telegram_web = v.findViewById(R.id.telegram_web);
    if (!UniversalUtility.isOnline(getContext()))
        UniversalUtility.handleFailureResponse("t.getMessage()", "messanger");

}

public void onCreate(@Nullable Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    CookieSyncManager.createInstance(getContext());
}

@Override
public void onResume() {
    super.onResume();
    CookieSyncManager.getInstance().startSync();
}

@Override
public void onPause() {
    super.onPause();
    CookieSyncManager.getInstance().stopSync();
}

@Override
public void onDetach() {
    super.onDetach();
    getActivity().getWindow().addFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN);
    getActivity().getWindow().clearFlags(WindowManager.LayoutParams.FLAG_FORCE_NOT_FULLSCREEN);
}

}