Javascript Meteor.call和Meteor.methods不适用于移动设备(iOS),但可在web和iOS模拟器上完美运行
虽然我还没有在安卓系统上尝试过,但是在移动设备上特别是在iOS上构建应用程序时,Meteor.call和.methods不起作用。在我以前的项目中,这种情况没有发生。我试着与另一个应用程序进行比较,实际上,我在这个新应用程序中重复使用了另一个应用程序,但它就是不起作用。此外,在web和iOS模拟器上,一切都运行良好。有人请帮忙 导入/startup/server/methods.jsJavascript Meteor.call和Meteor.methods不适用于移动设备(iOS),但可在web和iOS模拟器上完美运行,javascript,meteor,meteor-methods,Javascript,Meteor,Meteor Methods,虽然我还没有在安卓系统上尝试过,但是在移动设备上特别是在iOS上构建应用程序时,Meteor.call和.methods不起作用。在我以前的项目中,这种情况没有发生。我试着与另一个应用程序进行比较,实际上,我在这个新应用程序中重复使用了另一个应用程序,但它就是不起作用。此外,在web和iOS模拟器上,一切都运行良好。有人请帮忙 导入/startup/server/methods.js import { HTTP } from 'meteor/http'; import { Meteor } fr
import { HTTP } from 'meteor/http';
import { Meteor } from 'meteor/meteor';
Meteor.methods({
methodTrial: function(data) {
console.log("Called methodTrial");
return false;
}
});
导入/startup/ui/pages/home.js
import './home.html';
import { Meteor } from 'meteor/meteor';
Template.payment.events({
"click #test-method": (event) => {
var data = {
name : "Hello World"
};
Meteor.call('methodTrial', data, (error, result) => {
console.log("Called 'methodTrial'");
}
}
});
导入/startup/server/index.js
import './methods.js';
server/main.js
import { Meteor } from 'meteor/meteor';
import '/imports/startup/server';
您的
'methodTrial'
Meteor方法仅适用于服务器
因此,您的客户机不运行该方法的任何存根/模拟,而完全依赖服务器响应向用户提供任何反馈
如果由于任何原因设备无法连接到服务器,客户端将无法触发服务器上的方法,并且它将永远不会收到任何响应
在开发过程中,一个常见的误解是,由于您的设备(无论是基于iOS还是基于Android的)连接到您的计算机(通过USB数据线),所以它连接到您的服务器。但实际上,这仅适用于应用程序部署(当您执行meteor run ios设备
或meteor run android设备
时)。安装并打开应用程序后,它需要通过WiFi网络连接到计算机本地服务器
见:
在开发过程中,[…]设备和运行meteor的计算机必须是同一WiFi网络的一部分,并且网络配置不应阻止设备到达服务器。您可能必须更改防火墙或路由器设置以允许此操作(无客户端隔离)
meteor run
将尝试自动检测运行该命令的计算机的本地IP地址。如果此操作失败,或者您希望移动应用程序连接到其他服务器,则可以使用--mobile server
选项指定地址
常见的错误有:
- 未在设备上启用WiFi
- 不允许设备连接到WiFi网络(路由器上的MAC地址过滤等)
- 不允许在开发计算机上传入IP请求