小编shr*_*rug的帖子

如何在Swift中实现WebViewJavascriptBridge?

我处理使用UIWebViews呈现内容的iOS项目.我经常需要该内容与本机应用程序进行通信,为此我依赖于有用的WebViewJavascriptBridge.

我开始了一个我希望在Swift中实现的新项目.作为语言的新手,我遇到了正确实现桥梁的问题.虽然我很乐意承认对部分问题缺乏经验,但我也意识到Xcode在某种程度上错误地完成了代码,尤其是在设置Objective-C库使用块的闭包时.

这是我在Objective-C中使用的代码,其中一些Javascript通过字典发送以呈现PDF:

@weakify(self);
self.bridge = [WebViewJavascriptBridge bridgeForWebView:self.webView webViewDelegate:self handler:^(id data, WVJBResponseCallback responseCallback) {
    @strongify(self);
    if ([data isKindOfClass:[NSDictionary class]]) {

        // show a pdf
        if ([data[@"type"] isEqualToString:@"pdf"]) {
            self.docString = data[@"file"];
            self.docTitle = data[@"title"];
            [self performSegueWithIdentifier:@"modalPDF" sender:self];
        }
}
}];
Run Code Online (Sandbox Code Playgroud)

除了正确设置网桥之外,我还需要确保在Swift中使用弱引用,self就像我在Objective-C代码中所做的那样.

如何在Swift中正确实现桥接?

uiwebview ios swift

2
推荐指数
1
解决办法
2225
查看次数

标签 统计

ios ×1

swift ×1

uiwebview ×1