Meteor.loginwithpassword不适用于iOS

我正在为iOS 8.3+开发一个Meteor应用程序,并且遇到了在iOS上使用accounts-password包的问题。

我有我的login代码:

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; } 

});

正如你可以看到我正在validation一个Drupal用户,这工作正常。 应用程序本身也可以在浏览器上正常工作。 我得到的问题是,当我创build本机ios应用程序, Meteor.loginwithpasswordAccounts.createUser方法停止工作。

出于testing目的,我创build了一个只有{{> loginButtons}}模板的新meteor应用程序,并将其部署到iOS。 login显示在模拟器中。 它不显示在设备上。

以下是我使用的软件包的完整列表: 在这里输入图像说明

我在这里做错了什么?

顺便说一句,请让我知道,如果有反正我可以改善我的问题。

如果您在移动项目中使用“帐户”包,则必须有一台服务器供您的移动设备打电话。

虽然您可以在本地计算机上使用帐户包(Be Be Browser或Simulator),但可以在命令行中为您的移动设备使用该软件包:

 meteor build ~/.meteor/local --server=http://{{your server here}}.com 

之后这样做:

 meteor run ios-device --mobile-server http://{{your server here}}.com 

确保你的版本configuration正确。

如果您没有服务器,则可以使用以下方式将您的应用程序部署到meteor.com服务器作为临时解决scheme:

 meteor deploy "{{your-app-name-here}}.meteor.com" 

在这里小心点。 许多meteor开发商正在testing,所以你想尝试尽可能使独特的名称。

希望这可以帮助别人!

要在本地机器上运行它(用于开发),首先要find你的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 

笔记:

  • 没有港口,这不是为我工作。
  • 确保你的手机/移动设备是在同一个networking/有权访问你的开发机器(即:有权访问192.168.1.66在我的情况下)
  • 运行'meteorbuild造…',对我来说是没有必要做这项工作的。