【问题标题】:How to open the hosting app from an iMessage extension?如何从 iMessage 扩展程序打开托管应用程序?
【发布时间】:2017-02-16 03:10:04
【问题描述】:

假设我有一个 iMessage 应用扩展 MyMessageApp,它是 MyContainApp 的扩展。

我的期望

当我在 iMessage 中单击消息时,我想启动 MyContainApp 并对 MyContainApp 中的消息执行一些操作。

didSelectMessage中的代码

self.extensionContext openURL:url completionHandler:^(BOOL success)

问题

结果success 始终为NO

iMessage 应用扩展是否可以打开托管应用?

这是我发现的(没有帮助我Apple staff said "should be fixed in seed 3"Apple staff said "This will be fixed in the next release" 2016 年 8 月 10 日

不过,我还是无法启动 MyContainApp。我是否遗漏了什么,或者有关于 iMessage 应用程序的新政策?

【问题讨论】:

  • 它在我们的扩展程序中运行良好,你传递的是什么 URL?
  • @combinatorial 我使用 URLScheme "zkbrowser://'' 来启动我的应用程序。我在 Safari 中工作。
  • 如果您直接从容器应用程序中的某些代码在同一个 URL 上调用 openURL,它会起作用吗(本质上这就是扩展程序正在做的事情)。
  • @combinatorial 我在容器应用程序中添加了一个按钮,并使用以下代码:[UIApplication sharedApplication] openURL: 打开 URLScheme。有用。 (在处理程序中,成功返回YES)

标签: ios objective-c imessage-extension


【解决方案1】:

我创建了错误的应用程序!

首先创建 MyContainApp

而创建 MyMessageApp 的错误方法是 "new->target->Application->iMessageApplication" 。

我应该做的是“new->target->Application Extension->iMessage Extension”

并且“打开主机应用程序”代码是:

NSString *urlScheme = @"zkbrowser://";
NSURL *url = [NSURL URLWithString:urlScheme];

[self.extensionContext openURL:url completionHandler:^(BOOL success) {
    if (success) {
        NSLog(@">>>success");
    }else{
        NSLog(@">>>fail");
    }
}];

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-02-24
    • 1970-01-01
    • 2017-01-30
    • 2018-07-30
    • 2017-03-30
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多