使用framework7和Cordova-plugin-fcm时遇到很大问题。 这是我的代码:
var app = new Framework7({
root: '#app',
theme: 'ios',
tapHold: true,
pushState: true,
domCache: true,
swipeout: {
noFollow: true,
removeElements: false,
},
init: false,
on: {
init: function () {
setTimeout(gethetok, 20000);
function gethetok() {
FCMPlugin.getToken(function(token) {
localStorage.fcmtok=token;
console.log(token);
if (token===null) {
console.log('error');
}
FCMPlugin.onNotification(function(data) {
console.log(data);
if (data.wasTapped) {
alert(JSON.stringify(data));
} else {
alert(JSON.stringify(data));
}
});
});
}
}
当我在XCode中测试我的应用程序时,几秒钟后我可以从Firebase接收实例ID(这就是为什么我包含“ setTimeout(gethetok,20000);”)。我已经正确完成了所有步骤(包括GoogleService-info.plist等)。我已经通过控制台测试了此令牌,并且可以收到通知。我的问题是我无法通过localStorage存储值(实例ID)。我在做错什么吗?
答案 0 :(得分:0)
要设置本地存储,您需要这样编写:
// Set
localStorage.setItem('yourKey','yourValue');
// get
var tkn=localStorage.getItem('yourKey');
还要确保
将下载的文件“ GoogleService-Info.plist”放入科尔多瓦 IOS编译的项目根目录。
注意:我认为您可以使用async / await ..或任何其他解决方案来确保您嵌套了所需的数据,setTimeout().
...否则,如果仅将其用于测试用例...不能使用setTimeout
将其上传到生产环境。
祝你好运。
更新: @Billy Pap通过在头部添加Cordova.js来找到答案。