簡體   English   中英

Meteor.call和Meteor.methods無法在移動設備(iOS)上運行,但可以完美地在Web和iOS模擬器上運行

[英]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-devicemeteor run android-device )。 安裝並打開該應用程序后,它需要通過WiFi網絡連接到您的計算機本地服務器。

請參閱《 流星指南》>“構建”>“移動”>“在移動設備上開發”

在開發過程中,[…]運行meteor的設備和計算機必須屬於同一WiFi網絡,並且網絡配置不應阻止該設備到達服務器。 您可能必須更改防火牆或路由器設置以允許此操作(無客戶端隔離)。

meteor run將嘗試檢測自動運行該命令的計算機的本地IP地址。 如果失敗,或者您希望移動應用程序連接到其他服務器,則可以使用--mobile-server選項指定地址。

常見的錯誤是:

  • 未在設備上啟用WiFi。
  • 不允許設備連接到WiFi網絡(路由器上的MAC地址過濾等)
  • 在開發計算機上不允許傳入的IP請求。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM