web-dev-qa-db-ja.com

CookieSyncManagerは廃止されました。代わりに何を使用できますか?

アプリでCookieを使用していますが、すべてのブラウザーで正常に機能しますが、Androidデバイスでは、Cookieの設定が思ったほど速くないため、Cookieが保存されるまで時間がかかります。同じです。 Cookieを削除するとどうなりますか?Cookieを適切に機能させるために何かできることはありますか?回答を事前に感謝します。

protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    webview = new WebView(this);
    webview.getSettings().setJavaScriptEnabled(true); // enable javascript

    CookieManager.setAcceptFileSchemeCookies(true);
    CookieManager cookieManager = CookieManager.getInstance();
    cookieManager.setAcceptCookie(true);
    cookieManager.acceptCookie();
    String cookie = CookieManager.getInstance().getCookie("mylink");

    final Activity activity = this;

    webview.setWebViewClient(new WebViewClient() {
        public void onReceivedError(WebView view, int errorCode, String description, String failingUrl) {
            Toast.makeText(activity, description, Toast.LENGTH_SHORT).show();
        }
    });
    webview.loadUrl("mylink");

    setContentView(webview);
}
18
Ioana Ab.

Lollipop以降では、CookieManagerシングルトンはそれ自体で正常に動作します。 (リンクを参照- http://developer.Android.com/reference/Android/webkit/CookieManager.html )ただし、Lollipopの前に、CookieSyncManagerから追加の静的メソッドを使用する必要がありました。以下のコードは、すべてのAndroid=バージョンでCookieをWebViewに設定するときに機能します-

CookieManager cookieManager = CookieManager.getInstance();
if (Build.VERSION.SDK_INT < Build.VERSION_CODES.Lollipop) {
    CookieSyncManager.createInstance(this);
}
cookieManager.setAcceptCookie(true);
17
DarkKnight

JavaScriptとDom Storageを有効にするだけです。これにより、自分のログインの詳細をウェブビューに記録するのに役立ちますAndroid app。私はCookieManagerを使用しませんでしたが、これを有効にすると私にとってはトリックを実行します。

 webView.getSettings().setJavaScriptEnabled(true);
 webView.getSettings().setDomStorageEnabled(true);
3
Sharoon Ck