这很奇怪,如果我点击页面上的按钮就可以使用Phonegap的导航器对象。
控制器
Ext.define('App.controller.MainController', {
extend: 'Ext.app.Controller',
config: {
refs: {
homeButton: 'button[action=viewHome]',
},
control: {
homeButton: {
tap: 'showHome'
},
}
},
showHome: function(button, e, options) {
navigator.notification.vibrate(1000);
},}
但是如果我尝试在启动函数中访问导航器对象,我会'未定义'。
控制器
Ext.define('App.controller.MainController', {
extend: 'Ext.app.Controller',
launch: function(){
navigator.notification.vibrate(1000);
},}
在app.js的启动功能中也发生了同样的事情。任何人都知道为什么这样以及如何在启动功能中使用Phonegap?
答案 0 :(得分:2)
在准备好之前,您似乎正试图访问phonegap'navigator'API。您必须侦听deviceready事件,一旦触发,您可以调用navigator。
你可以这样称呼它。
launch: function () {
if(Ext.browser.is.PhoneGap && !Ext.os.is.Desktop) {
document.addEventListener("deviceready", this.mainLaunch, false);
} else {
this.mainLaunch();
}
},
mainLaunch: function() {
navigator.notification.vibrate(1000);
}
Ext.browser检查也是为了让它在Chrome浏览器上运行,否则你将不得不总是在模拟器或设备上测试应用程序。