如何为GeckoView设置cookie?

问题描述 投票:0回答:1

我有一个Android WebView代码,在其中设置cookie值。但是,相同的操作在Mozilla GeckoView中不起作用。

使用WebView的示例:

public void onViewCreated(View view, @Nullable Bundle savedInstanceState) {
    super.onViewCreated(view, savedInstanceState);

    webView = view.findViewById(R.id.webView);
    webView.getSettings().setJavaScriptEnabled(true);

    final CookieSyncManager cookieSyncManager = CookieSyncManager.createInstance(getContext());
    final CookieManager cookieManager = CookieManager.getInstance();
    cookieManager.setAcceptCookie(true);

    cookieManager.setCookie(url, "sessionid=123; path=/");
    cookieSyncManager.sync();

    webView.loadUrl("https://example.com");
}

带有GeckoView的示例:

public void onViewCreated(View view, @Nullable Bundle savedInstanceState) {
    super.onViewCreated(view, savedInstanceState);

    webView = view.findViewById(R.id.webView); // GeckoView
    GeckoSession geckoSession = new GeckoSession();
    geckoSession.getSettings().setAllowJavascript(true);

    GeckoRuntimeSettings.Builder builder = new GeckoRuntimeSettings.Builder()
            .javaScriptEnabled(true);

    GeckoRuntime geckoRuntime = GeckoRuntime.create(Objects.requireNonNull(getContext()), builder.build());
    webView.setSession(geckoSession, geckoRuntime);

    final CookieSyncManager cookieSyncManager = CookieSyncManager.createInstance(getContext());
    final CookieManager cookieManager = CookieManager.getInstance();
    cookieManager.setAcceptCookie(true);

    cookieManager.setCookie(url, "sessionid=123; path=/");
    cookieSyncManager.sync();

    geckoSession.loadUri("https://example.com");
}

我没有收到任何错误,但cookie值不会影响加载的页面。

android gecko geckoview
1个回答
0
投票

GeckoView截至目前(2019年10月)不支持设置/获取cookie。您可以对该错误的实现进行关注/投票:https://bugzilla.mozilla.org/show_bug.cgi?id=1035417

© www.soinside.com 2019 - 2024. All rights reserved.