DSBridge是一个现代,跨平台的IOS/Android jsbridge. 通过它你可以同步或异步的调用彼此的函数。
DSBridge-IOS:https://github.com/wendux/DSBridge-IOS
DSBridge-Android:https://github.com/wendux/DSBridge-Android
注意:目前DSBridge已经更新到了3.0,使用方法请查看项目主页,有中文文档,如果仍然需要使用2.0请到github上切换到2.0分支,查看2.0分支下的相应的文档,2.0和3.0不兼容,如果你是新用户,强烈建议使用3.0,如果你是老用户,或者仍然需要支持UIWebview,请使用2.0,本文文档已经太老,所以删除了,欢迎在github上讨论
网友评论
_webView.JavascriptInterfaceObject = api;
使用DUIWebview不能注册。js不能调用bridge的方法。
__block DWKWebView* blockWebview= self.webView;
[self.webView setJavascriptCloseWindowListener:^{
NSLog(@"%@", blockWebview);
[blockWebview callHandler:@"testMy" arguments:nil completionHandler:^(id _Nullable value) {
NSLog(@"%@", value);
}];
}];
html文件中的js方法如下:
function testMy() {
return "成功";
}
window.testMy= function(){
return "成功";
}
@property (nonatomic,strong) DUIwebview * uiweb;
self.uiweb.JavascriptInterfaceObject = self; 为什么我这样不行
CGRect rect = self.view.bounds;
// rect.origin.y = 20;
// rect.size.height -= 20;
DWebview * web =[[DWebview alloc] initWithFrame:rect];
DUIwebview * webview = [web getXWebview];
webview.frame = rect;
self.uiweb = webview;
webview.JavascriptInterfaceObject = self;
现在接口可以用·但是不知道是不是内存优化问题,加载页面交互的时候会崩溃,这个问题还没解决