我正在尝试在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提供商。
你知道我做错了什么吗?
答案 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();
})