我正在开发适用于iOS 8.3 +的Meteor应用程序,而且我在使用帐户密码包在iOS上运行时遇到了问题。
我的登录代码为:
Template.login.events({
"submit #login-form": function()
{
$.ajax({
url: "http://www.drupalsite.com/api/v1/user/login.json",
type: "POST",
dataType: "json",
data: $("#login-form").serializeArray(),
error: function(data)
{
alert(data.responseJSON[0]);
},
success: function(Drupal)
{
alert("User being checked...");
Accounts.createUser({
username: $("#username").val(),
password: $("#password").val(),
email: Drupal.mail,
profile:
{
uid: Drupal.uid,
name: Drupal.user.field_first_name.und[0].safe_value + " "+ Drupal.user.field_last_name.und[0].safe_value
}
}, function(error, result){
if(error)
{
Meteor.loginWithPassword($("#username").val(), $("#password").val());
alert("User Logged In");
$('.login').animate({
}, 0, function() {
$('.sign-in').removeClass('open');
$('.login').removeClass('open');
});
} else
{
alert("User Created");
}
});
}
});
return false;
}
});
正如您所看到的,我正在验证Drupal用户,该工作正常。应用程序本身也适用于浏览器。我得到的问题是,当我创建原生ios应用时,Meteor.loginwithpassword
和Accounts.createUser
方法停止工作。
出于测试目的,我创建了一个新的meteor应用程序,该应用程序只有{{> loginButtons}}
模板并将其部署到iOS。登录显示在模拟器中。它不会出现在设备上。
以下是我使用的软件包的完整列表:
我在这里做错了什么?
BTW,无论如何我都可以告诉我,我可以改进我的问题。
答案 0 :(得分:1)
如果您在移动项目中使用“帐户”软件包,则必须有一台服务器供移动设备呼叫。
虽然您可以在本地计算机上使用帐户包(无论是浏览器还是模拟器),但请在移动设备的命令行中使用此包:
meteor build ~/.meteor/local --server=http://{{your server here}}.com
然后这样做:
meteor run ios-device --mobile-server http://{{your server here}}.com
确保您的版本配置正确。
如果您没有服务器而不是使用以下方法将应用程序部署到meteor.com服务器作为临时解决方案:
meteor deploy "{{your-app-name-here}}.meteor.com"
这里要小心。很多流星开发者正在测试,所以你想尝试使名称尽可能独特。
希望这有助于某人!
答案 1 :(得分:0)
要在本地计算机上运行(用于开发),首先找到您的IP(/sbin/ifconfig
将在Linux和OSX上提供帮助。)
然后运行
meteor run --mobile-server <IP:PORT> <PLATFORM-DEVICE>
在我的情况下,我的开发机器的IP是192.168.1.66。并且meteor在默认端口(3000)上运行,因此命令为:
meteor run --mobile-server 192.168.1.66:3000 ios-device
注意: