【问题标题】:Buildfire: Private Portal pluginBuildfire:私人门户插件
【发布时间】:2017-08-08 02:05:08
【问题描述】:

我正在尝试完成的网关插件有一个非常具体的问题。

我正在尝试使用

导航到不同的插件
'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 制作的插件工作的唯一方法。

但是,当我尝试导航到我创建的插件时,调试器显示并显示“无法加载配置文件”的警报,然后整个平台崩溃并让我再次登录。

如何导航到我创建的插件?

【问题讨论】:

    标签: buildfire


    【解决方案1】:

    您是如何获得 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 保持您的参考数据最新。

    这里有一个简单的例子,可以画出更好的画面。如果您引用一个名为“Holiday Sales”的插件,那么您将保存到您的数据存储集合{title: "Holiday Sales"} 并因此通过该标题引用它。这可能会在短时间内起作用。但是,如果应用所有者将标题更改为“Summer Sale”,那么您的副本已经过时。在传统数据库中,您将有 2 个表,其中一个具有真实来源,另一个将有一个 foreign key 引用第一个表。这样您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": "...",
                        }
                    }
                    }
                ]
            }
        }
    */
    });
    

    希望对你有帮助

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-11-28
      • 2013-02-24
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多