IOS JS交互Webview重定向

来源:互联网 发布:mysql数据库的安装 编辑:程序博客网 时间:2024/06/08 20:22

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];
}

虽然说方法比较粗暴,但是很实用,不用引入第三方库。

原创粉丝点击