2017-01-05 2 views
1

Я загружаю url в webview. у меня есть два типа данных для отображенияКак загрузить два URL-адреса в webview Вместе в iOS?

1) текст (HTML строка)

2) URL

вот мой код

для отображения текста

[self.webView loadHTMLString:[self.arr objectAtIndex:indexPath.row][@"text"] baseURL:nil]; 

Для отображения URL-адрес

NSString *str = [NSString stringWithFormat:@"%@%@",URL,strpdf]; 
     NSURL *websiteUrl = [NSURL URLWithString:str]; 
     NSURLRequest *urlRequest = [NSURLRequest requestWithURL:websiteUrl]; 
     [self.webView loadRequest:urlRequest]; 

вопрос, когда я загрузке и данные, данные перезаписать. Я хочу отображать как данные в webview , но прямо сейчас отображается только текст или изображение.

что это за решение.

+0

Использовать два веб-представления? – GeneCode

+0

@GeneCode согласно моему требованию в верхнем тексте webview и ниже текста. Я хочу отобразить URL. –

+1

@ Krutarth Patel, вы имеете в виду использование одного «веб-представления» для загрузки двух запросов? – aircraft

ответ

1

Мои демо ниже:

enter image description here

#import "ViewController.h" 

@interface ViewController()<UIWebViewDelegate> 

@property(nonatomic, strong) UIWebView *webView; 

@property (nonatomic, copy) NSString *html_str; 

@end 

@implementation ViewController 

- (void)viewDidLoad { 
    [super viewDidLoad]; 
    [self initUI ]; 
} 

- (void)initUI { 

    _html_str = @"I love google..."; // the html text you want 

    CGRect frame = CGRectMake(0, 0, [UIScreen mainScreen].bounds.size.width, [UIScreen mainScreen].bounds.size.height); 
    _webView = [[UIWebView alloc] initWithFrame:frame]; 
    _webView.delegate = self; 

    NSString *str = [NSString stringWithFormat:@"http://chsezhsan195030.e-fae.cn/"]; 
    NSURL *websiteUrl = [NSURL URLWithString:str]; 
    NSURLRequest *urlRequest = [NSURLRequest requestWithURL:websiteUrl]; 
    [self.webView loadRequest:urlRequest]; 

    [self.view addSubview:self.webView]; 


} 

#pragma mark - webview delegate 

- (void)webViewDidFinishLoad:(UIWebView *)webView { 


    NSString *script_str = [NSString stringWithFormat:@"var body = document.getElementsByTagName('body')[0];\ 
    var script = document.createElement('div');\ 
    script.innerText = '12345678'%@;\ 
    script.style.width = window.innerWidth + 'px';\ 
    script.style.height = '300px';\ 
    script.style.backgroundColor = '#eeeeee';\ 
    body.appendChild(script); \ 
    body.insertBefore(script, body.childNodes[0]);",_html_str]; 

    NSString *function = [NSString stringWithFormat: @"var script = document.createElement('script');\ 
    script.type = 'text/javascript';\ 
    script.text = \'function myFunction() { \ 
%@ };'\ 
    document.getElementsByTagName('head')[0].appendChild(script);", script_str]; 

    [self.webView stringByEvaluatingJavaScriptFromString:function]; 

    [self.webView stringByEvaluatingJavaScriptFromString:@"myFunction()"]; 

} 

@end 

Но вы должны внимание большой части URL предотвращены для INJECT расслоения плотной коды, особенно https URL, так что вы не можете вставить html-текст над индексной страницей Google.

+0

Спасибо за ответ. Answer.i проверит и сообщит вам –

+0

У меня есть одна проблема. –

+0

@ Krutarth Patel. пожалуйста, опубликуйте его, если у меня будет время, я помогу вам, – aircraft

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