0

我有简单的代码

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)

在此处输入图像描述 (图二)

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

4

3 回答 3

1

此上下文中的“桌面”链接意味着用户将看到她/他在单击其 Macintosh 或 PC 时通常会看到的内容。这是预期的行为。

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

于 2016-04-22T17:22:33.983 回答
0

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

NSURL *url = [NSURL URLWithString:@"https://en.m.wikipedia.org/wiki/Cat"];
于 2019-04-14T15:52:10.403 回答
0

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

于 2016-04-22T17:26:47.903 回答