标签: ionic3

ionic 2中的localStorage和Storage哪个更好?

我想将我的身份验证代码存储在 localstorage 中,ionic2提供了它自己的存储模块ionic/storage

storage.set(key,value),
storage.get(key).then(value=> {
   console.log(value);
})
Run Code Online (Sandbox Code Playgroud)

但我也尝试过这样存储,当我在浏览器中测试应用程序时它可以工作。

localStorage.setItem(key, value);
localStorage.getItem('key');
Run Code Online (Sandbox Code Playgroud)

谁能解释一下使用本地存储的更好方法是什么?

javascript ionic2 ionic3

2
推荐指数
1
解决办法
638
查看次数

将材质图标添加到 Ionic 3 项目

我们的网络应用程序有这些材料图标:https : //fonts.googleapis.com/icon?family= Material+ Icons

我们目前正在 Ionic Framework 3 中开发移动版本,我们希望使用相同的图标,但其中一些未包含在框架中。

我怎样才能添加它们?理想情况下,我想像其他 Ionic 图标一样使用它们:

<ion-tab [root]="tab1Root" tabTitle="Something" tabIcon="some-material-icon"></ion-tab>
Run Code Online (Sandbox Code Playgroud)

谢谢。

ionic-framework ionic3

2
推荐指数
1
解决办法
5965
查看次数

Razorpay ionic 3 回调问题

我将使用 ionic 3 应用程序实现 razorpay 一切正常,我得到了 pay_id 的成功回调,但之后没有任何事情发生,例如重定向到其他页面或路由或任何其他活动或调用函数等。

我参考以下链接,

https://github.com/razorpay/razorpay-cordova-sample-app/tree/master/rzp-ionic2-example

这是我的代码,

var options = {
      description: 'Credits towards consultation',
      image: 'https://i.imgur.com/3g7nmJC.png',
      currency: 'INR',
      key: 'rzp_test_1DP5mmOlF5G5ag',
      amount: '5000',
      name: 'foo',
      prefill: {
        email: 'pranav@razorpay.com',
        contact: '8879524924',
        name: 'Pranav Gupta'
      },
      theme: {
        color: '#F37254'
      },
      modal: {
        ondismiss: function() {
          alert('dismissed')
        }
      }
    };

    var successCallback = function(payment_id) {
      alert('payment_id: ' + payment_id);
      this.navCtrl.push("ThankyouPage",{
              status: this.status
          });
    };

    var cancelCallback = function(error) {
      alert(error.description + ' (Error ' + error.code + …
Run Code Online (Sandbox Code Playgroud)

cordova typescript ionic2 ionic3 angular

2
推荐指数
1
解决办法
1819
查看次数

在 Ionic 中去除 HTML 标签?

使用 ionic 3 我从 wordpress api 获取了一些数据,然后在应用程序 UI 上显示相同的数据。除了内容中包含的 HTML 标签外,一切似乎都正常。html 标签也被打印出来。我参考了一些建议使用以下代码的资源:-

`var app = angular.module('myHDApp', []);

    app.filter('removeHTMLTags', function() {

    return function(text) {

        return  text ? String(text).replace(/<[^>]+>/gm, '') : '';

};

});
Run Code Online (Sandbox Code Playgroud)

我已经在我的 .ts 代码中实现了上述功能,但它似乎对我不起作用,因为我仍然在内容中获得 HTML 标签。

typescript ionic-framework ionic3 angular

2
推荐指数
1
解决办法
4376
查看次数

HTML + Ionic 3.x:如何在 html 文件中使用 for 循环使用 in 而不是

我的打字稿文件中有几个对象数组。

我想同时遍历这些数组并在 html 文件中显示它们的内容。以下是内容:

<ion-item>
  {{array1[i]}} {{array2[i]}} {{array3[i]}}
</ion-item>
Run Code Online (Sandbox Code Playgroud)

幸运的是,数组总是相同的大小。现在我想在 ion-item 之后做一个 for 循环(类似这样):

<ion-item *ngFor="let i in array1">
  {{array1[i]}} {{array2[i]}} {{array3[i]}}
</ion-item>
Run Code Online (Sandbox Code Playgroud)

但是这样做会给我一个错误:“无法绑定 'ngForIn' 因为它不是 'ion-item' 的已知属性。现在我找到了以下解决方法,但它看起来很丑陋。

<ion-item *ngFor="let counter of array1; let i = index">
  {{array1[i]}} {{array2[i]}} {{array3[i]}}
</ion-item>
Run Code Online (Sandbox Code Playgroud)

关于如何更有效/更漂亮地执行此操作的任何建议将不胜感激:)

谢谢!

for-loop typescript ionic2 ionic3 angular

2
推荐指数
1
解决办法
1万
查看次数

如何使用Ionic 3设置Firebase分析事件

我正在尝试使用firebase来获取分析事件,但我得到的只是session_start事件。我正在使用Firebase 离子插件

这是我的代码:

constructor(public navCtrl: NavController, private nav: NavController,
            private firebaseAnalytics: FirebaseAnalytics) {
    this.firebaseAnalytics.setEnabled(true);
    this.firebaseAnalytics.logEvent('home_page_viewed', {page: "dashboard"})
        .then((res: any) => console.log(res))
        .catch((error: any) => console.error(error));
    }
Run Code Online (Sandbox Code Playgroud)

因此,我希望在Firebase控制台中看到一个名为“ home_page_viewed”的事件,但我没有看到此事件。我所看到的只是session_start事件。

有人知道我该怎么办?

firebase angularfire ionic-framework angularfire2 ionic3

2
推荐指数
1
解决办法
2202
查看次数

在Ionic中使用ngIF 3

当我想在离子1中隐藏或显示div时,我曾经使用过ngshow.

我正在使用离子3,如果indexCount == 0,我试图让按钮什么也不做(没有点击事件).

我现在有......

<div ng-if=" indexCount == 0">
<button ion-button class="previous"> Previous </button>

<div ng-if=" indexCount != 0">
 <button ion-button class="next" (click)="previousButtonClick"> Next 
</button>
Run Code Online (Sandbox Code Playgroud)

ionic-framework ionic2 ionic3

2
推荐指数
1
解决办法
4万
查看次数

在Ionic 3中无法捕获滚动事件

我想要在ionic3中捕获列表组件的滚动事件,如下例所示:

<ion-content on-scroll = "scrolling()" on-scroll-complete = "scrollComplete()">
  <ion-list>
    <ion-item ng-repeat="item in items" 
              item="item"
              href="#/item/{{item.id}}">
      Item {{ item.id }}
    </ion-item>
  </ion-list>   
</ion-content>      
Run Code Online (Sandbox Code Playgroud)

https://codepen.io/etipirev/pen/aNYNpy?editors=1111

似乎它在离子1中起作用,但在离子3中不起作用?我尚未在离子文档中找到任何事件描述。是否可以捕获ionic 3中列表项的滚动?

javascript ionic-framework ionic2 ionic3 angular

2
推荐指数
1
解决办法
2278
查看次数

ionic:ngFor数组更改后不会自动更新

离子新手在这里。我正在使用Ionic 3和BLE插件。该插件的工作方式是,您开始扫描Bluetooth设备,并收到每个新的扫描结果的通知,然后在完成后取消扫描。我只是想在ion-list每次接收到新的扫描结果时将元素附加到。

这个Cordova插件使用了回音,这些回音将离子包装到Observables和Promises中。该方法startScan返回Observable<any>,并且“ any”是一个对象,其中包含有关检测到的BLE设备的信息。

我首先尝试将此可观察对象直接插入ngFor中:

<ion-list>
    <button ion-item *ngFor="let result of results | async">
        {{ result | json}}
    </button>  
</ion-list>
Run Code Online (Sandbox Code Playgroud)

调用开始扫描返回了可观察到的结果:

this.results = this.ble.startScan([]);
this.results.subscribe(...);
Run Code Online (Sandbox Code Playgroud)

但是我听说这ngFor仅适用于数组,因此它需要一个Observable<Array>而不是单个对象的可观察对象。因此,我放弃了Observable并改为使用数组。异步管道不再起作用,所以我不得不修改列表:

<ion-list>
    <button ion-item *ngFor="let result of results">
        {{ result | json}}
    </button>  
</ion-list>
Run Code Online (Sandbox Code Playgroud)

然后将的类型更改resultsArray<any>。现在,扫描代码如下所示:

this.ble.startScan([])
.subscribe(device => {
    this.results.push(device); //Does not work    
});
Run Code Online (Sandbox Code Playgroud)

但是,直到屏幕上的某些其他组件发生更改,列表才会显示。显然,Angular不会检测到Array元素内部的更改,它仅检测到对象内引用和属性的更改。因此,我尝试了这种无效的技巧:

this.ble.startScan([])
.subscribe(device => {
    this.results = this.results.concat([device]); //Does not work    
});
Run Code Online (Sandbox Code Playgroud)

但是,即使那样也没有用。然后,经过几个小时的阅读,我知道了这个所谓的东西ChangeDetector应该可以解决问题。我尝试了OnPush检测策略,并且默认设置也无效:

this.ble.startScan([])
.subscribe(device …
Run Code Online (Sandbox Code Playgroud)

ionic-framework ngfor ionic3 angular

2
推荐指数
1
解决办法
4961
查看次数

在ionic 3应用程序中使用JWT进行身份验证

我有一个想使用touchId功能的ionic 3应用程序。

后端API正在.net中开发。

对于我的身份验证模型,我认为在用户输入登录名和密码并由服务器进行身份验证之后,它会发回JWT令牌。

我可以将令牌存储在本地,然后每次用户使用touchId时,它都会检查令牌是否存储在本地,然后将该令牌与服务器进行匹配并允许访问。

这是怎么运作的?

jwt ionic3 angular

2
推荐指数
1
解决办法
4270
查看次数