Nativescript- vue сохранить куки на Android - PullRequest
0 голосов
/ 29 января 2020

Я создаю простое приложение для веб-просмотра, использующее nativescript- vue, где в приложении больше ничего нет, кроме веб-просмотра, загружающего веб-сайт в полноэкранном режиме.

На iOS это прекрасно работает, я могу войдите на веб-сайт, выключите и снова включите приложение, и я все еще вхожу в систему.

Вкл. Android, куки не сохраняются, и вы должны входить в систему каждый раз, когда выключаете приложение.

Как я могу включить файлы cookie в веб-просмотре для Android?

Ответы [ 2 ]

0 голосов
/ 06 марта 2020

Этот код должен работать

const webView = webargs.object;

if (android.os.Build.VERSION.SDK_INT >= 21) {
 android.webkit.CookieManager.getInstance().setAcceptThirdPartyCookies(webView.android, true);
}
0 голосов
/ 29 января 2020

Я не мог заставить его работать с куки, поэтому мне пришлось переключиться и использовать localalstorage в качестве резервной копии для сохранения токенов вместо куки.

Вот как выглядит моя финальная версия:

<template>
    <Page>
        <WebView @loadStarted="onLoadStarted"
                 @loaded="onWebViewLoaded"
                 src="https://yoururl.com/"
        />
    </Page>
</template>

<script>
    import { isAndroid } from "tns-core-modules/platform"

    export default {
        methods: {
            onLoadStarted (webargs) {
                if (isAndroid) {
                    const webView = webargs.object;
                    webView.android.getSettings().setDomStorageEnabled(true) // This will enable local storage
                }
            },
            onWebViewLoaded(webargs) { // I use this only to disable the default zoom buttons
                if (isAndroid) {
                    const webView = webargs.object;
                    webView.android.getSettings().setDisplayZoomControls(false)
                    webView.android.getSettings().setBuiltInZoomControls(false)
                }
            },
        }
    };
</script>

По-видимому, вы должны иметь возможность разрешить использование файлов cookie (по крайней мере, для новых пользователей SDK):

webView.on(WebView.loadStartedEvent, (args) => {

      webView.android.getSettings().setAcceptThirdPartyCookies(webView, true)

});

Но это не сработало так, как ожидалось, так как иногда казалось, что это может сохранить файлы cookie. а иногда нет, иногда удаляет файлы cookie (когда вы выходите из системы), а иногда нет.

Я надеюсь, что эта информация кому-то поможет, так как наверняка кажется, что информации об этом практически нет, особенно если вы не хорошо знакомы с чистой Java Android разработкой.

...