о, я обнаружил в другом QA, что иногда, если html получил строку "width = device-width", и вы загружаете веб-просмотр из контроллера popover, этот контроллер popover будет автоматически отправлять ширину устройства, а не ширину просмотра, которую выуточняйте, и сделайте ваш взгляд уродливым и прикольным.в этом посте это проблема jQuery, и она решена с помощью jQuery.В моей проблеме, это просто проблема HTML в мобильной версии Wiki.поэтому я пробую другой способ, но похожий.
Я просто добавляю код в метод делегата webViewdidload, сначала получаю URL html в NSString, затем использую метод экземпляра NSString для поиска «device-width» в загруженном html,и замените его шириной моего вида, чтобы сделать его новой NSString, затем загрузите эту страницу с этой новой NSString.вот и все.
- (void) webViewDidFinishLoad:(UIWebView *)webView
{
if (!alreadyReload)
{
NSString *webHTML = [NSString stringWithContentsOfURL:webView.request.URL encoding:NSUTF8StringEncoding error:NULL];
NSRange range = [webHTML rangeOfString:@"device-width"];
if ((range.location!=NSNotFound)&&(range.length != 0))
{
webHTML = [webHTML stringByReplacingOccurrencesOfString:@"device-width" withString:@"whatever width you need" options:0 range:range];
[webView loadHTMLString:webHTML baseURL:wikiWebView.request.URL];
alreadyReload = YES;
}
}
}
что-то вроде этого.
, кстати, поскольку я использую это только в мобильной версии вики, html прост, а сравнять и заменять довольно легко,если вы хотите использовать его в более общем случае, вы можете использовать другой способ.