我想使用一个功能,用户可以通过按下项目文件来启动我的应用程序/应用程序。我关注com.gluonhq.charm.down.plugins.RuntimeArgsService
Gluon服务。
我的第一步是从网址启动应用。但是 - 我想知道是否/如何让我的应用程序知道它的启动URL - 所以它可以自动导入该项目并为用户显示它。
可以将启动网址提供给应用/应用 - 因此它可以知道它的推出位置吗?
答案 0 :(得分:1)
通过修改iOS上的AndroidManifest.xml
和iOS上的Default-Info.plist
并使用com.gluonhq.charm.down.plugins.RuntimeArgsService
,这是可能的。
Services.get(RuntimeArgsService.class).ifPresent(service -> {
service.addListener(LAUNCH_URL_KEY, con -> {
out("Received LAUNCH_URL_KEY: " + con);
});
});
(需要import static com.gluonhq.charm.down.plugins.RuntimeArgsService.LAUNCH_URL_KEY
)
con here(对于Consumer对象),包含从中启动应用程序的URL。在我的例子中,我创建了一个名为.example
的文件。这导致我修改了AndroidManifest.xml
文件,这也是需要的:
我在AndroidManifest.xml
文件中添加了以下内容:
在Gluon Charm库中:http://docs.gluonhq.com/charm/javadoc/4.4.0/com/gluonhq/charm/down/plugins/RuntimeArgsService.html - 它解释了如何使用该服务,但是告诉你将你的方案设置为“yourScheme”(不是采用文学资料)。
这是关于neccassary标签类型的Android文档。它声明有些是强制性的(为了将文件扩展名与您的应用程序相关联 - 除其他外)。我发现了这篇文章Cannot open custom file extension。请注意,他将方案设置为“文件”,这是必要的。
请记住,即使您没有将其设置为特定的任何内容,也需要添加一些data
。这一切都使我能够从指定的文件扩展名类型启动我的应用程序,然后通过对象con
通过侦听器接收URL。
在iOS上,我通过在Defualt-Info.plist
文件中添加两个键来实现此功能。通过添加那些我告诉系统我的应用程序可以打开“.exa”(如示例)文件。 “TryingService”是Gluon应用程序的名称。
在iOS上也可以通过编辑此处解释的Defualt-Info.plist
文件来收集网址方案:How can I open/send a URL to another app on iOS with a Gluon application?在该问题的评论中。
在Android上,也应该可以使用intents
- 这已经被Gluon Charm Down库中的ShareService
使用了:https://bitbucket.org/gluon-oss/charm-down/src/153d43c06ff129f1ff93cc48a030c3a2cf099281/plugins/plugin-share/android/src/main/java/com/gluonhq/charm/down/plugins/android/AndroidShareService.java?at=default&fileviewer=file-view-default