【问题标题】:SQL Lite Storage sometimes return null ionic 3SQLite 存储有时返回 null ionic 3
【发布时间】:2018-09-13 04:33:24
【问题描述】:

我正在构建一个支持多种语言的应用 我正在使用 SQL Storage lite 来保留所选语言 但有时存储返回 null

<ion-item class="settings-items" no-border ion-item>
  <ion-icon class="img-view" item-start name="ios-globe">
  </ion-icon>
  <ion-label [ngClass]="(this.Platform.isRTL ) ? 'settings-textAr': 'settings-text' ">{{'LANG' | translate}}</ion-label>
  <ion-select mode="ios" [(ngModel)]="lang" item-end (ionChange)="switchLanguage()">
    <ion-option class="options" value="en" [selected]="lang === english">
      English
    </ion-option>
    <ion-option class="options" value="ar" [selected]="lang === arabic">
      العربية
    </ion-option>
  </ion-select>
</ion-item>

选择语言

  switchLanguage() {
if (this.lang === 'en') {

  this.translate.use(this.lang)
  this.Platform.setDir('ltr', true)
  this.storage.set('DocLang' , JSON.stringify(this.lang))
} else {

  this.Platform.setDir('rtl', true)
  this.translate.use(this.lang);
  this.storage.set('DocLang' , JSON.stringify(this.lang))

}

获取语言并设置方向

this.Storage.get('DocLang').then((val) => {
      this.lang = JSON.parse(val)

      console.log(this.lang)
      if (this.lang === 'en') {
        this.TranslateService.use('en');
        this.platform.setDir('ltr', true);

      } else if(this.lang === 'ar'){
        this.TranslateService.use('ar');
        this.platform.setDir('rtl', true);

      }
  });

【问题讨论】:

    标签: ionic3 ionic-native


    【解决方案1】:

    如果我们想存储键值对,SQLite 作为它的关系型数据库不是正确的选择。请参考以下问题:

    saving and retrieving key-value pairs in an sqlite database android

    一种简单的方法是将您的语言存储在本地或会话存储中。我在我的应用程序中实现了多语言支持,如下所示:

    Multi language support without plugin in ionic app

    要将语言存储在本地存储中,请使用以下代码:

    setLanguage(languageCode : string){
        localStorage.setItem('language',languageCode);
      }
    

    【讨论】:

    • 我会使用 Cordova 插件将对象或数组存储在文件中。这样我就知道它总会带来我想要的。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-03-10
    • 1970-01-01
    • 1970-01-01
    • 2022-01-16
    • 2020-11-28
    • 1970-01-01
    相关资源
    最近更新 更多