EasyJSWebView二次加载无效的解决方案

35 篇文章 0 订阅
28 篇文章 0 订阅

JS和OC交互有好几种方法,这种引用EasyJSWebView第三方的,是和安卓最像的,调用的JS也是一样的,避免H5开发的写两次JS了
但是,有问题,再次加载的时候,点击页面,EasyJSWebView的代理方法不走了。这个第三方里面的代理还拿不出,so我想了一个本办法,就是在webview加载的时候,把旧的webview去掉,重新铺一个新的

上代码

@property (nonatomic, strong)EasyJSWebView *webview;

static BOOL first=YES;//定义一个静态变量,判断是否是第二次加载
-(BOOL)webView:(UIWebView*)webView shouldStartLoadWithRequest:(NSURLRequest*)request navigationType:(UIWebViewNavigationType)navigationType {

    if (!first) {

        [_mWebV removeFromSuperview];

        _mWebV = nil;
        __weak typeof(self) _weakself = self;
        _webview = [[EasyJSWebView alloc] initWithFrame:CGRectMake(0, 20, _weakself.view.frame.size.width, _weakself.view.frame.size.height)];


        [self.view addSubview:_webview];

        _webview.backgroundColor = [UIColor lightGrayColor];

        _webview.delegate = self;


        [_webview addJavascriptInterfaces:self WithName:@"test"];

        [_webview loadRequest:request];

        NSLog(@"重新刷新");
        first = YES;

        return NO;

    }
    first = NO;
    return YES;
}

之所以定义全局的webview,是因为代理方法里,是需要逻辑编码或者页面跳转之类的

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值