IOS JS交互Webview重定向

IOS JS 交互WebView重定向

當使用webView與JS交互時,我們一般會遇到這樣的問題:第一次夾在Web頁面時JS是可以獲取到上下文對象的,但是當我們重新reload的時候,發現獲取的上下文對象錯誤,這時我們需要這樣處理:
當第二次重新reload的時候需要先移除原先的WebView,然後在重新創建對應的web頁面在行加載

詳細代碼如下:

if (_mRequest == nil)
{
NSURL *url = [NSURL URLWithString:[NSString stringWithFormat:@"%@%@",circleMainUrl,SubUrlSearchCircle]]; // 服務器地址
NSURLRequest *request = [NSURLRequest requestWithURL:url];
_mRequest = [request mutableCopy];
[_mRequest setCachePolicy:NSURLRequestReloadIgnoringCacheData];
_mRequest.timeoutInterval =10;
[self.webView setBackgroundColor:[UIColor clearColor]];
[self.view bringSubviewToFront:self.webView];
[self.webView loadRequest:_mRequest];
}
else
{
[self.webView removeFromSuperview];
CGRect fram = CGRectMake(0, CGRectGetMaxY(_searchBar.frame)+10, SCREEN_WIDTH, SCREEN_HEIGHT-CGRectGetMaxY(_searchBar.frame));
[self restartLoadRequest:_mRequest frame:fram];
}
- (void)restartLoadRequest:(NSURLRequest *)request frame:(CGRect)rect
{
self.webView = [[UIWebView alloc] initWithFrame:rect];
self.webView.delegate = self;
self.webView.scrollView.delegate = self;
self.webView.dataDetectorTypes = UIDataDetectorTypeNone;
[self.webView setBackgroundColor:[UIColor whiteColor]];
[self.view addSubview:_webView];
[self.webView loadRequest:request];
}

雖然說方法比較粗暴,但是很實用,不用引入第三方庫。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章