2017-02-22 3 views
0

Я использую WKWebView для загрузки строки html, возвращаемой с сервера, и установки CSS, но на странице не отображается экран телефона, как я могу это сделать?WKWebView loadHTMLString

NSString *requestUrl = [NSString stringWithFormat:@"http://news-at.zhihu.com/api/4/news/%ld",self.story.ID]; 
requestSuccessBlock sblock = ^(id responseObject){ 

    YAContentItem *content = [YAContentItem contentItemWithKeyValues:responseObject]; 


    NSString *htmlString = [NSString stringWithFormat:@"<html><head><link rel=\"stylesheet\" type=\"text/css\" href=%@ /></head><body>%@</body></html>", content.css.firstObject, content.body]; 


    [self.webView loadHTMLString:htmlString baseURL:nil]; 

ответ

0
- (WKWebView *)webView { 
if (_webView == nil) { 

    WKWebView *webView = [[WKWebView alloc] initWithFrame:CGRectMake(0, 0, kScreenWidth, kScreenHeight - 44)]; 

    // 自适应屏幕宽度js 
    NSString *jSString = @"var meta = document.createElement('meta'); meta.setAttribute('name', 'viewport'); meta.setAttribute('content', 'width=device-width'); document.getElementsByTagName('head')[0].appendChild(meta);"; 
    WKUserScript *wkUserScript = [[WKUserScript alloc] initWithSource:jSString injectionTime:WKUserScriptInjectionTimeAtDocumentEnd forMainFrameOnly:YES]; 
    WKUserContentController *contentController = webView.configuration.userContentController; 

    // 添加自适应屏幕宽度js调用的方法 
    [contentController addUserScript:wkUserScript]; 

    webView.navigationDelegate = self; 

    [self.view addSubview:webView]; 

    _webView = webView; 
    [self.view addSubview:webView]; 
} 
return _webView; 

}

Смежные вопросы