我有两个需要相互通信的插件。其中一个插件允许用户创建锻炼。另一个插件需要能够允许用户将锻炼插件链接到特定的锻炼。
为此,最好能够进入消费插件,单击“链接锻炼”之类的内容,然后通过 buildfire.navigation.navigateTo 将我带到锻炼插件,我可以在其中选择锻炼(因为只有这个插件可以访问锻炼数据)。从那里,一旦做出选择,它会将我导航回另一个插件,其中包含我链接的锻炼记录的 ID。这样,我可以保存锻炼的 ID,并且每当有人想从小部件中查看锻炼时,它就能够将他们导航到锻炼插件并加载正确的 ID。
当我尝试在控制面板中实现此功能时,navigation.navigateTo 会出现以下错误消息:
postMessageHandler error: TypeError: Cannot read property 'source' of undefined
at Object.navigateTo (pluginAPI.js:265)
at PluginAPI.postMessageHandler (pluginAPI.js:221)
at tryPMH (postMaster.js:44)
at Object._acceptRequest (postMaster.js:62)
at postMessageHandler (postMaster.js:29)
navigation.navigateTo 只能在小部件端使用吗?这是我的导航对象供参考:
pluginId: '6d9d8456-d2c9-4ddb-80b8-**********',
instanceId: '6drt3456-d2c9-4ddb-80b8-fdbbff854r1b-*********',
folderName: 'theplugin',
title: '',
queryString: '?id=abc123def456'
另外,我不确定文件夹名称应该是什么。SDK源代码似乎需要它,但我不知道应该放什么。我放了一些我认为可能有用的东西,但这可能是为什么这不起作用的罪魁祸首。寻求对此的确认。
尽管如此,即使我使用小部件中的导航,当它加载新插件和新加载插件的管理面板时,它也会显示“404 not found”而不是加载管理面板。对此也有任何想法吗?