我想创建带通知的Ionic应用程序。 我安装了PushPlugin,这是我的控制器:
.controller('MainCtrl', function($scope,$ionicPlatform,$cordovaPush) {
$ionicPlatform.ready(function () {
var androidConfig = {
"senderID": "ID"
};
$cordovaPush.register(androidConfig).then(function(result) {
// Success
console.log(result);
}, function(err) {
// Error
});
})
});
离子服务运行后,我遇到了错误:
ng-cordova.js:6180 Uncaught TypeError:无法读取属性 ' pushNotification'未定义的
我找到了一些解决方案,所以我修改了我的代码:
index.html(仅头标记):
<head>
<meta charset="utf-8">
<meta name="viewport" content="initial-scale=1, maximum-scale=1, user-scalable=no, width=device-width">
<title></title>
<link href="css/ionic.app.css" rel="stylesheet">
<script src="lib/ionic/js/ionic.bundle.js"></script>
<script src="lib/ngCordova/dist/ng-cordova.js"></script>
<script src="cordova.js"></script>
<!-- copy from plugin www folder -->
<script src="js/libs/PushNotification.js"></script>
<script src="js/app.js"></script>
<script src="js/controllers.js"></script>
</head>
和我的控制员:
.controller('MainCtrl', function($scope,$ionicPlatform,$cordovaPush) {
$ionicPlatform.ready(function () {
var androidConfig = {
"senderID": "ID"
};
if (window.plugins && window.plugins.pushNotification){
console.log("plugins"); //it displays
$cordovaPush.register(androidConfig).then(function(result) {
// Success
console.log(result);
}, function(err) {
// Error
});
}
})
});
现在,我得到了:
未捕获的ReferenceError:未定义cordova
我很困惑,如何运行它。
插件列表:
com.phonegap.plugins.PushPlugin 2.5.0 "PushPlugin"
cordova-plugin-console 1.0.3 "Console"
cordova-plugin-device 1.1.2 "Device"
cordova-plugin-splashscreen 3.2.2 "Splashscreen"
cordova-plugin-statusbar 2.1.3 "StatusBar"
cordova-plugin-whitelist 1.2.2 "Whitelist"
ionic-plugin-keyboard 2.2.0 "Keyboard"
答案 0 :(得分:0)
确保以下内容:
1 ..通过运行以下命令行添加ionic-platform-web-client和push-plugin:
ionic add ionic-platform-web-client
ionic plugin add phonegap-plugin-push --variable SENDER_ID="GCM_PROJECT_NUMBER"
2 ..运行以下命令行为您的应用分配ID:
ionic io init
3 ..将debug设置为true以便能够在浏览器中进行测试
ionic config set dev_push true
4 ..在run()方法中设置推送注册
angular.module('app', ['ionic','ionic.service.core' ])
.run(function($ionicPlatform) {
$ionicPlatform.ready(function() {
var push = new Ionic.Push({
"debug": true
});
push.register(function(token) {
console.log("My Device token:",token.token);
push.saveToken(token, {'ignore_user': true}) ; // persist the token in the Ionic Platform
});
});
})
测试您的推送,如果它在浏览器中有效,则禁用调试并开始在您的设备上进行测试。
ionic config set dev_push false