UIWebview未加载网站

时间:2015-11-04 05:00:18

标签: ios objective-c uiwebview localization

在我的应用程序中,我在菜单中有一个链接,用户可以在线访问我们的常见问题页面。我正在使用webview加载页面,到目前为止一直很好。

但问题是,我的在线页面会自动检测用户语言并加载页面的正确本地化版本。

如果我在模拟器上打开safari并加载我的网址,它会被重定向到正确的本地化版本,但在应用程序上使用UIWebview会加载英语(默认)语言。

我在网上做过一些研究,但找不到与此事有关的任何内容。

为了加载正确的本地化版本,我能/需要传递一些内容吗?

由于

修改
我目前正在使用手机语言并传入URL,但我正在寻找的是UIWebview的行为与safari一样,通过调用主URL并让网站根据您的语言选择版本。

1 个答案:

答案 0 :(得分:1)

您可以将应用支持的语言作为包含[[NSBundle mainBundle] localizations];的字符串数组,并将其与系统语言进行比较,如下所示:

+ (NSString *)preferredLanguage {
    NSString *res = @"en";

    NSArray *appSupportedLanguages = [[NSBundle mainBundle] localizations];
    NSArray *appleLanguages = [NSLocale preferredLanguages];

    if (appleLanguages && appleLanguages.count > 0) {
        NSString *shortLangId = [appleLanguages.firstObject substringToIndex:2];

        if ([appSupportedLanguages containsObject:shortLangId]) {
            res = shortLangId;
        }
    }

    return res;
}

我在这里使用缩短版本的原因是iOS 9改变了一些语言的ID并且它破坏了我的应用程序 - 你应该在这里做一些小改动。不过,此方法允许您获取可用于打开正确的常见问题页面的语言ID,如https://.../faq_fr.htm或某些服务器端处理,如https://...?lang=fr