[英]Meteor.call and Meteor.methods not working on mobile (iOS) but perfectly works on web and iOS simulator
雖然我還沒有嘗試過在Android上移動設備上構建應用程序,但不確定如何將其放置,但Meteor.call和.methods無法正常工作。 在我以前的項目中,這不會發生。 我嘗試與其他應用程序進行比較,實際上,我在這個新應用程序中重用了另一個應用程序,但它根本無法正常工作。 此外,所有內容在Web和iOS模擬器上都可以正常運行。 有人請幫忙。
進口/啟動/服務器/ methods.js
import { HTTP } from 'meteor/http';
import { Meteor } from 'meteor/meteor';
Meteor.methods({
methodTrial: function(data) {
console.log("Called methodTrial");
return false;
}
});
進口/啟動/ UI /網頁/ 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'");
}
}
});
進口/啟動/服務器/ index.js
import './methods.js';
服務器/ main.js
import { Meteor } from 'meteor/meteor';
import '/imports/startup/server';
您的'methodTrial'
流星方法僅適用於服務器。
因此,您的客戶端不會運行該方法的任何存根/模擬,而僅依靠服務器響應來向用戶提供任何反饋。
如果由於某種原因設備無法連接到服務器,則客戶端將無法在服務器上觸發該方法,並且它將永遠不會收到任何響應。
開發過程中常見的誤解是,由於您的設備(無論是基於iOS還是Android的設備)都已通過USB數據線連接至計算機,因此已連接至服務器。 但是實際上這僅適用於應用程序部署(當您執行meteor run ios-device
或meteor run android-device
)。 安裝並打開該應用程序后,它需要通過WiFi網絡連接到您的計算機本地服務器。
請參閱《 流星指南》>“構建”>“移動”>“在移動設備上開發” :
在開發過程中,[…]運行
meteor
的設備和計算機必須屬於同一WiFi網絡,並且網絡配置不應阻止該設備到達服務器。 您可能必須更改防火牆或路由器設置以允許此操作(無客戶端隔離)。
meteor run
將嘗試檢測自動運行該命令的計算機的本地IP地址。 如果失敗,或者您希望移動應用程序連接到其他服務器,則可以使用--mobile-server
選項指定地址。
常見的錯誤是:
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.