UIWebView转WKWebView,与前端交互的问题

主要WKWebView的前端调用方法为:window.webkit.messageHandlers.方法名.postMessage(); 之前前端写法一般是:window.方法名();

主要思路就是在调用JS方法的时候,替换成wk可以识别的交互方法,避免前端修改代码。以下为转换方法:

//转换方法

function calliOSFunction(namespace, functionName, args, callback) {
if (!window.webkit.messageHandlers[namespace]) return;
var wrap = {
"method": functionName,
"params": args
};
window.webkit.messageHandlers[namespace].postMessage(JSON.stringify(wrap));
}

//例子

var jsCallNative = {}

jsCallNative.toLogin = function () {

    calliOSFunction("jsCallNative","toLogin");

}

window["jsCallNative"] = jsCallNative;

后续补充:

审核过后还有包含的未删除的UIWebView,但未在工程中

通过以下命令:

grep -r UIWebView .

查找项目中还含有的UIWebView

原文地址:https://www.cnblogs.com/jztsdwn/p/13130782.html