2013-04-22 34 views
0

在基于Web的开发和基于Windows的开发,可以开发小程序或组件的其他应用程序可以在自己的UI中嵌入的无缝连接。我有一个组件(派生自View),它执行一些实时动画,我希望其他应用程序能够嵌入到自己的视图或活动中。是否有可能允许其他应用程序以这种方式嵌入此组件:当我的应用程序更新时,其他应用程序会自动在嵌入式组件中显示更新的行为?让我的Android视图可以嵌入到其他应用程序

如果这是可能的,我有一个很难搞清楚的搜索条件,用来查找如何做到这一点。一个应用程序如何去嵌入来自另一个应用程序的视图,以及如果没有安装其他应用程序会发生什么?

+0

不,你唯一的选择AFAIK是让你的组件在一个库项目。然后其他开发人员可以在创建自己的应用程序时引用您的库项目这将让他们使用你的视图,但它不能自动更新,如果他们想使用更新的特性/行为,他们将更新你的库项目。 – FoamyGuy 2013-04-22 13:47:04

+0

虽然这不能解决您的具体问题,但可以通过发布“RemoteViews”来发布可以嵌入其他应用程序的UI,就像为应用程序小部件,丰富的通知等一样。此目录具有一对示例应用程序展示了这一点:https://github.com/commonsguy/cw-omnibus/tree/master/RemoteViews然而,'RemoteViews'不适用于自定义的'View'类,只有股票的类这些的一个子集)。 – CommonsWare 2013-04-22 14:11:17

回答

2

您不能直接允许以iframe的方式进行嵌入。

但是,你可以让你查看一个库项目,其他开发人员可以包括在他们的应用程序,就像它们包括另一家公司的SDK。为了允许自动更新,您需要安装您的应用程序以及其他应用程序,并且在制作库项目时,您必须制作一个BroadcastReceiver,以响应您从应用程序发送的广播以更新其他应用程序中的视图。然后

你的SDK可以接收这些广播,并相应地更新您的视图。

+0

这是否曾经在实践中完成过?任何应用程序的例子 - 通知其他应用程序的更新?接收通知的应用是否需要重新编译,或者有什么方法可以自动下载更新的封装组件? – BlueMonkMN 2013-04-22 13:52:08

+0

@BlueMonkMN我从来没有见过这样做,但它理论上应该是可能的。但是,如果更新View组件的源代码,则第三方用户将不得不使用更新的库项目重新编译他们的应用程序。 – 2013-04-22 13:53:16

+0

如果应用程序在收到存在更新的通知时需要重新编译,我看不到成为BroadcastReceiver的目的。这不是一种可以自动完成的事情,但是记住可能会以某种方式发挥作用是一个有趣的提示。 – BlueMonkMN 2013-04-22 13:55:56

1

您可以将当前项目设置为库项目。您将库项目添加到您要使用自定义View的项目。您的自定义View将可以在该项目中访问。

您可以将项目属性> Android和检查相应的复选框标记项目作为库项目。

1

您可以为应用程序创建一个应用程序窗口小部件,以及小部件可以通过充当部件主机的任何应用程序中使用 - 这几年做的 - 但至少你可以有它的主屏幕上。我想知道为什么这不是更多 - 这将是许多应用程序的杀手锏。

https://developer.android.com/guide/topics/appwidgets/index.html

给出更多的信息。

+0

欢迎来到StackOverflow!但是,谢谢您的回答,请不要将链接作为答案的实质;留下一段代码以供参考。如果URL更改,链接可能很容易失效。 – cdomination 2016-07-15 16:05:21

相关问题