使用Cordova的安全存储插件会产生“未知提供商”错误,为什么?

时间:2016-12-16 13:57:08

标签: angularjs cordova ionic-framework

我正在尝试在Ionic应用程序上使用安全存储(https://ionicframework.com/docs/v2/native/secure-storage/)。

在我的控制器中:

    .controller('ExampleCtrl', function ($scope, SecureStorage) {
        var ss = new SecureStorage(
                function () {
                    console.log('Success')
                },
                function (error) {
                    console.log('Error ' + error);
                },
                'my_app');
                var key = 'aaa';

ERROR:

  

ionic.bundle.js:26799错误:[$ injector:unpr]未知提供者:   SecureStorageProvider< - SecureStorage< - ExampleCtrl

但它不知道SecureStorage提供商。

你知道我做错了什么吗?

2 个答案:

答案 0 :(得分:1)

请试试这个:

.controller('ExampleCtrl', function ($scope) {
    var ss = new cordova.plugins.SecureStorage(
            function () {
                console.log('Success');
            },
            function (error) {
                console.log('Error ' + error);
            },
            'my_app');
});

因此,从控制器参数中删除SecureStorage并在第二行添加cordova.plugins.

不要忘记安装插件(当然):

ionic plugin add cordova-plugin-secure-storage --save

现在您可以使用ss上的功能,但不要使用您提供的链接中的文档,因为这是Ionic 2文档。请使用插件文档:https://github.com/Crypho/cordova-plugin-secure-storage

答案 1 :(得分:0)

我认为您应该将SecureStorage包装在服务中,然后使用控制器中的服务。

import { SecureStorage } from 'ionic-native';
.factory('secureFactory',function(){

     this.createStorage = function(){
       var ss = new SecureStorage(
            function () {
                console.log('Success')
            },
            function (error) {
                console.log('Error ' + error);
            },
            'my_app');
        return ss;
     }

 })
控制器中的

 .controller('ExampleCtrl', function ($scope, secureFactory) {
    var sss = secureFactory.createStorage();
 })