我的代码在桌面浏览器和android模拟器上正常工作,但在android设备(通过USB调试模式)上不起作用。
我已经在服务器代码中注册了自定义登录处理程序
Accounts.registerLoginHandler("customLoginHandler", function (options) {
console.log("customLoginHandler()");
});
然后在特定的UI事件中,我从客户端代码调用它
console.log("calling custom login");
Accounts.callLoginMethod({
methodArguments: [ {clientUser: "hello", clientPassword: "world"} ],
userCallback: function() {
console.log("clientCustomLogin callback");
}
});
console.log("done");
在桌面或android模拟器上运行此代码时的控制台输出
customLoginHandler()
手机calling custom login
done
整个客户端代码位于
内if (Meteor.isClient) {
块。为什么输出如此不同?
流星版本1.1.0.2,服务器操作系统- Linux,移动- Android 4.4.2
流星是由以下命令启动的:
meteor run android-device
包安装:
$ meteor list
accounts-base 1.2.0 A user account system
http 1.1.0 Make HTTP calls to remote servers
meteor-platform 1.2.2 Include a standard set of Meteor packages in your app
twbs:bootstrap 3.3.4 The most popular front-end framework for developing responsive, mobile first projects on the web.
简短回答:在android上删除应用程序,然后运行meteor run android-device
长说。
我不知道为什么这是可能的,但是看起来这个应用程序在移动设备上没有完全更新(或者从某个点开始根本没有更新)。
我正在玩帐户基础,帐户密码和帐户ui包重新安装,但后来我注意到,当我用标准的{{> loginButtons}}替换我的模板(在主html文件中)时,在移动设备上运行后没有任何变化,android上的应用程序刷新。
然后我从android上删除了应用程序,重新启动了meteor。
之后应用程序开始按预期工作