【问题标题】:NSExtensionContext openURL doesn't workNSExtensionContext openURL 不起作用
【发布时间】:2014-07-02 18:11:13
【问题描述】:

我正在尝试从扩展程序启动容器应用程序。 (一个动作扩展) 容器应用程序有一个有效的 URL 方案 (example://),我可以通过在 Safari 中导航到该 URL 来验证这一点。

当我尝试使用 -[NSExtensionContext openURL:completionHandler:] 启动容器应用程序时,我收到一个不成功的回调并且没有任何反应。

iOS 8 Beta 2 的更改表明 openURL 方法现在应该可以工作,但这仍然是一个错误还是我做错了什么?

【问题讨论】:

    标签: ios objective-c ios-app-extension


    【解决方案1】:

    使用此代码在 Today Extension 中为我工作:

    NSExtensionContext *myExtension=[self extensionContext];
    [myExtension openURL:[NSURL URLWithString:@"http://google.com"] completionHandler:nil];
    

    但是,它可能不适用于操作扩展。来自documentation

    每个扩展点决定是否支持这种方法,或者 在什么条件下支持这种方法。在 iOS 8.0 中,只有 Today 扩展点支持此方法。

    【讨论】:

      【解决方案2】:

      我的解决方案是创建一个UIWebView 并加载一个带有 url 的请求

      【讨论】:

        【解决方案3】:

        如果使用 unicode 字符,则必须转换为 utf8 字符串。

        NSString* toUtf8= [yourString stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding];
        
        NSString *urlString = [NSString stringWithFormat:@"openMap://?lat=%f&lon=%f&%@",[self.koordX floatValue],[self.koordY floatValue],toUtf8];
        
        [self.extensionContext openURL:[NSURL URLWithString:urlString]  completionHandler:nil];
        

        【讨论】:

          【解决方案4】:

          https://developer.apple.com/library/prerelease/ios/documentation/Foundation/Reference/NSExtensionContext_Class/index.html#//apple_ref/occ/instm/NSExtensionContext/openURL:completionHandler:

          重要 Apple 允许任何 Today 小部件使用 openURL:completionHandler: 方法打开小部件自己的包含应用程序。

          如果您使用此方法从 Today 小部件打开其他应用,您的 App Store 提交可能需要额外审核,以确保符合 Today 小部件的意图。

          要了解更多信息,请阅读 App Store Review Guidelines 和 iOS Human Interface Guidelines,链接到 Apple 的 App Review Support 页面

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 1970-01-01
            • 2014-08-09
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 2012-03-26
            • 1970-01-01
            • 2018-10-27
            相关资源
            最近更新 更多