API локального хранилища не работают в NativeScript WebView - PullRequest
0 голосов
/ 07 февраля 2019

Мое приложение - это веб-приложение, размещенное в {N} WebView.Имя пользователя и пароль хранятся в localStore.Когда я покидаю приложение и снова захожу, у меня нет данных, и я должен вернуться к входу в систему.

Может ли кто-нибудь мне помочь?или объясните, как отладить веб-представление в приложении.веб-страница разработана с Angular 4 и приложение с NativeScript.

Ответы [ 2 ]

0 голосов
/ 08 февраля 2019

Отлично, спасибо !!пример работает хорошо.

.html

<Page (loaded)="pageLoaded($event)">
        <GridLayout rows="*" columns="*">
           <WebView  #myWebView [src]="webViewSrc" (loadStarted)="onWebViewLoadStarted($event)"></WebView>
        </GridLayout>
</Page>

-компонент (ts file)

import { Component, OnInit, AfterViewInit, ViewChild, ElementRef } from "@angular/core";

@Component({
    selector: "Home",
    moduleId: module.id,
    templateUrl: "./home.component.html",
    styleUrls:['./home.component.css']
})
export class HomeComponent  {
   public webViewSrc: string = URL;
    constructor(private routerExtensions: RouterExtensions) {
        // Use the component constructor to inject providers.
    }

    onWebViewLoaded(args){
        const webView = args.object;
        if (webView.android) {
            webView.android.getSettings().setDatabaseEnabled(true);
            webView.android.getSettings().setLoadWithOverviewMode(true);
        }
    }
    pageLoaded(args: EventData) {
        let page = <Page>args.object;
        page.bindingContext = new HomeViewModel();
    }
}
0 голосов
/ 07 февраля 2019

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

export function onWebViewLoaded(args) {
    const webView = args.object;
    if (webView.android) {
        webView.android.getSettings().setDomStorageEnabled(true);
        webView.android.getSettings().setDatabaseEnabled(true);
    }
}

Образец игровой площадки

Между тем, можете ли вы localStorage сохранить конфиденциальную информацию, такую ​​какв качестве имени пользователя / пароля здесь другой вопрос.Мой ответ будет отрицательным, вы не можете его использовать, так как он прост / открыт для доступа.Как правило, вы должны использовать API входа в систему с этими учетными данными, указанными пользователем, вы, вероятно, должны получить access token, который впоследствии будет использоваться для любого взаимодействия с сервером.Вы можете сохранить этот токен в своем localStoage, очистить его при выходе из системы.

...