2017-08-03 30 views
0

我正在嘗試完成一個網關插件的具體問題。Buildfire:私人門戶插件

我試圖導航到使用

'buildfire.pluginInstance.get($scope.deepLinnk,function (err, plugin) { 
    if (err) { 
    $scope.status = 'error!'; 
    } 
    else { 
    console.log(plugin); 
    $scope.navigateSignIn(plugin);} 

           }); 
$scope.navigateSignIn = function (plugin) { 
       buildfire.navigation.navigateTo({ 
         pluginId: plugin.token, 
         instanceId: plugin.instanceId, 
         title: plugin.title, 
         folderName: plugin.pluginTypeId 
        }); 
       }; 

的對象的NavigateTo不同的插件是我能得到buildfire.navigate.navigateTo爲buildfire做插件工作的唯一途徑。

但是,當我嘗試導航到我創建的插件時,調試器顯示並出現一條警告:「無法加載配置文件」,那麼整個平臺崩潰並使我再次登錄。

如何導航到我創建的插件?

回答

0

你是如何得到pluginId,instanceId和folderName?你不能簡單地將它們保存它們或硬代碼,你需要啓動dynamic data查詢看到https://github.com/BuildFire/sdk/wiki/How-to-use-the-Datastore-Dynamic-Data

你也可以看一個例子,如文件夾插件https://github.com/BuildFire/folderPlugin/blob/d84551feb06cfc304c325480ca96d87795a66929/widget/widget.controller.js#L163

基本上每一個插件更新插件時間標識符如folderNametitle可能會更改。所以你需要使用dynamic data保持你的參考數據爲新鮮。

這是一個簡單的例子,可以繪製出更好的圖片。如果您正在引用標題爲「假日銷售」的插件,那麼您可以將其保存到數據存儲集合{title: "Holiday Sales"},然後按照該標題引用它。這可能會在短時間內運行。但是,如果應用程序所有者將標題更改爲「夏季促銷」,那麼您的副本已過期。在傳統數據庫中,您將有兩個表格,其中一個表示真值,另一個表格會引用第一個表格。這樣你join並始終顯示最新的數據。

Dynamic data是一種幫助您查找。你只要給它一個關鍵和那個關鍵參考。然後在運行時,當你撥打電話時,它將使你查找你需要的服務器端,並返回你正在尋找的最新數據。

樣本:

buildfire.datastore.save("MyData",{ 
    _buildfire: { /// key identifier 
     myPluginsToNavTo: { 
      data:["123123-123123","asdasda-asdasd"] /// plugin instances 
      ,dataType: "pluginInstance" 
     } 
    } 
}); 

======

buildfire.datastore.getWithDynamicData("MyData",function(err,data){ 
// data would be: 
/* 
_buildfire: { /// key identifier 
     myPluginsToNavTo: { 
      data:["55f71347d06b61b4010351dc","asdasda-asdasd"] 
      ,dataType: "pluginInstance" 
      ,result: [ /// <=============new property added dynamically 
       { 
        "id": "55f71347d06b61b4010351dc", 
        "data": { 
         "pluginTypeId": 3212, 
         "token": "6372b101-addf-45da-bb0a-9208a09e7b6b", 
         "title": "YouTube Plugin", 
         "iconUrl": "http://s3-us-west-2.amazonaws.com/pluginserver/plugins/6372b101-addf-45da-bb0a-9208a09e7b6b/resources/image.png", 
        } 
        ,{ 
        "id": "asdasda-asdasd", 
        "data": { 
         "pluginTypeId": 123123, 
         "token": "1223123123-addf-45da-bb0a-9208a09e7b6b", 
         "title": "Plugin 2", 
         "iconUrl": "...", 
        } 
       } 
       } 
      ] 
     } 
    } 
*/ 
}); 

希望這有助於