WKWebView

项目中WKWebview 暂时未解决问题

2018-06-07  本文已影响65人  neobuger

问题1

WKWebView 加载白屏问题 Could not signal service com.apple.WebKit.WebContent

解决方案:

- (void)webViewWebContentProcessDidTerminate:(WKWebView *)webView API_AVAILABLE(macosx(10.11), ios(9.0));

在此方法中 让webview reload

[self.webview reload];

但是实际此方法没有进!

问题2

WKWebView 添加js交互方法后的 内存泄漏
项目中问题是:网页播放器在播放视频,退出后仍然在后台播放

解决方案:

@interface WeakScriptMessageDelegate : NSObject<WKScriptMessageHandler>

@property (nonatomic, weak) id<WKScriptMessageHandler> scriptDelegate;

- (instancetype)initWithDelegate:(id<WKScriptMessageHandler>)scriptDelegate;

@end
@implementation WeakScriptMessageDelegate

- (instancetype)initWithDelegate:(id<WKScriptMessageHandler>)scriptDelegate {
    self = [super init];
    if (self) {
        _scriptDelegate = scriptDelegate;
    }
    return self;
}

- (void)userContentController:(WKUserContentController *)userContentController didReceiveScriptMessage:(WKScriptMessage *)message {
    [self.scriptDelegate userContentController:userContentController didReceiveScriptMessage:message];
}

@end

在我的项目实际没有效果


- (void)removeScriptMessageHander {
    WKUserContentController *userCC = self.webView.configuration.userContentController;
    [userCC removeScriptMessageHandlerForName:@"xxxx"];
}

在ViewController的viewWillisappear中调用
但是 还是没有效果。



ok 解决!
***
上一篇 下一篇

猜你喜欢

热点阅读