已更新的問題: 簡單的客戶端HTTP.get()調用在iOS模擬器上不起作用。同樣的調用是在瀏覽器的模板中獲取數據及其完美顯示(localhost:3000) 早些時候我認爲這與本地集合有關,但問題實際上是HTTP.get調用沒有返回任何數據在cordova(ios仿真器或設備)內。爲什麼客戶端的HTTP.get()調用在Cordova(Meteor 0.9.3)中不起作用?
請注意,我的整個代碼只在客戶端if(Meteor.isClient){}而沒有if(Meteor.isCordova){}。
原始問題:是否可以在Cordova(Meteor 0.9.3)中定義一個本地集合? 我在我的應用程序中有一個本地(僅客戶端)集合,如圖所示: Items = new Meteor.Collection(null);
此本地集合暫時從外部API獲取數據(通過添加'meteor add http'並使用HTTP.get()),並將此內容推送到模板。這通過helpers(返回Items.find())在localhost:3000上的瀏覽器模板中完美呈現,但是當我運行'meteor run ios'時,數據不會在iOS模擬器中加載。
首先,是否有可能期望本地收藏在科爾多瓦內工作? 應該在裏面定義: Meteor.isCordova({})? 是否需要添加cordova特定包裝? 我相信在這種情況下本地收集是必要的,因爲數據是根據用戶的設備位置及其僅與當前會話相關來檢索的。
任何想法將不勝感激。
(流星小白這裏,對不起,如果這聽起來很愚蠢!)
編輯:集合了服務器和客戶端上定義都在瀏覽器中,以及在iOS模擬器正在工作。所以問題只在於本地收藏。
我不認爲科爾多瓦和當地收藏有什麼特別之處。您可能還有其他一些錯誤,比如沒有連接到服務器,或者沒有CORS頭文件與外部服務進行通信,因爲cordova代碼是從不同的來源提供的。 – imslavko 2014-09-28 21:35:50
@imslavko對不起,我應該提到我可以訪問在iOS模擬器中定義在服務器和客戶端上的集合(就像在我的文件夾結構中的常見「集合」文件夾中)。這意味着我的應用程序的cordova部分運行正常。而且,CORS標頭由Chrome瀏覽器插件處理。因此,只有在使用本地收藏時,我才能合理確信它是一個問題。 – insaneinc 2014-09-29 05:32:08
我不知道你在說什麼Chrome瀏覽器插件。 – imslavko 2014-09-29 16:29:02