SFSafariViewController 在移动模式下无法打开 url

SFSafariViewController doesn't open url in mobile mode

我有简单的代码

NSURL *url = [NSURL URLWithString:@"https://en.wikipedia.org/wiki/Cat"];
if ([SFSafariViewController class] != nil) {
    SFSafariViewController *sfvc = [[SFSafariViewController alloc] initWithURL:url];
    [self presentViewController:sfvc animated:YES completion:nil];
} else {
    [[UIApplication sharedApplication] openURL:url];
}

我在 iOS 9.3 上测试过。当我第一次打开 url 时,我可以在移动模式下看到该页面。

(图1)

接下来我单击桌面。我可以看到这个页面(图2)

(图2)

我重新启动了应用程序,SFSafariViewController 仍然以桌面模式打开页面(图 2)。 我可以使用 SFSafariViewController 在移动模式下强制打开 url 吗?我该怎么做?

在此上下文中的 "Desktop" link 意味着用户将看到 s/he 在其 Macintosh 或 PC 上单击时通常会看到的内容。这是 预期的 行为。

如果您暂停然后恢复该应用程序,尤其是当 SFSafariViewController 对用户可见时,该应用程序将在它停止的同一页面上恢复,除非您告诉它重新打开原始 URL(您可以通过让您的应用程序委托监视 applicationWillEnterForeground: 然后强制重新加载视图控制器来做到这一点)。

如果它工作正常,那么您需要做的就是单击维基百科页脚中的移动视图,否则重建您的应用程序并清理它,它将恢复默认行为

我找到的最终解决方案,它使用服务器支持的带有前缀 (m.) 的特定链接,它将强制使用移动模式打开 url:

NSURL *url = [NSURL URLWithString:@"https://en.m.wikipedia.org/wiki/Cat"];