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