我正在考虑一个新的移动/平板电脑应用程序。
我想让用户开发自己的插件。
想象一下在 Android 平板电脑上运行的收银台应用程序。用户在连接到信用卡读卡器时可以使用许多替代方法( Square 、 Sum'Up 、...)。
如果我的应用程序是旧的 Win32,我只会发布一个 API,然后让 Square 或 Sum'Up 开发人员创建一个 DLL。然后,这个 DLL 将被放置在计算机上的某个地方。在应用程序启动时,我只需要查找那些 DLL 并动态加载它们。
事实上,真正的问题是:是否可以创建基于插件的应用程序?我在想 托管可扩展性框架 这里。许多问题浮现在脑海:
我找不到任何关于此的文档。
非常感谢您的想法和指示。
最佳答案
不确定这是否完全回答了您的问题。
但是,如果您将 DLL 放在可公开发现的地方,例如/storage/emulated/0,那么类似 MEF 的架构可能会在 Android 上运行。或者,此类插件可以作为单独的应用程序分发,提供可从其他应用程序使用的服务、内容提供者和事件。
但是,在 iOS 上,您将无法在 App Store 中发布这样的应用程序,因为 Apple 不允许您在那里使用动态链接库。您可以为不在 App Store 上的应用程序执行此操作,例如用于企业分发。
虽然它可能不是最好的解决方案。您将始终能够通过 URL 在 iOS 上的应用程序之间导航。然而,这并不是最好的体验,因为这意味着每次你想进入一个“插件”应用程序来做某事时,你都会离开你的应用程序。
关于Xamarin 和托管可扩展性框架 (MEF),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41216347/