Closed ashen-zhao closed 6 years ago
@ashen-zhao 你之前用的是哪个版本?2.x和3.x是不兼容的,可以查看文档。
:octocat: From gitme Android
@wendux 我之前用的3.0.2,我刚才又换回去了,就可以调通了,3.0.3调起时,提示找不到方法
@ashen-zhao 所有方法都调用不了还是个别?今天改的是jsbutil.m 里的methodByNameArg方法,你能帮在3.0.3中这个方法里下个断点,看看是不是在查找swift方法时哪里的错误? 多谢😁
:octocat: From gitme Android
@wendux 那好的, 我试试看
@wendux 经过调试,我发现swift的方法中,外部参数名要用‘ ’来忽略掉,才可以调通,否则methodByNameArg这个方法中,会将参数名追加到方法名后面,导致方法名字不匹配,找不到方法; 比如这样: @objc func testSyn( arg:String) -> String { return String(format:"%@[sync call:%@]", arg, "test") }
看了下好像是 WKUserScript *script = [[WKUserScript alloc] initWithSource:@"_dswk='_dsbridge=';" injectionTime:WKUserScriptInjectionTimeAtDocumentStart forMainFrameOnly:YES]; 这里的"_dswk='_dsbridge='; 改变了,不知道这是什么意思