是否可以从URL启动应用并处理应用内部的URL内容?

时间:2017-10-18 23:44:37

标签: android-manifest desktop gluon-mobile info-plist

我想使用一个功能,用户可以通过按下项目文件来启动我的应用程序/应用程序。我关注com.gluonhq.charm.down.plugins.RuntimeArgsService Gluon服务。

我的第一步是从网址启动应用。但是 - 我想知道是否/如何让我的应用程序知道它的启动URL - 所以它可以自动导入该项目并为用户显示它。

可以将启动网址提供给应用/应用 - 因此它可以知道它的推出位置吗?

1 个答案:

答案 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文件中添加了以下内容: enter image description here

在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应用程序的名称。 enter image description here

在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