Внедрить JS в WKWebview - PullRequest
       4

Внедрить JS в WKWebview

1 голос
/ 16 марта 2020

В одном из моих приложений я переносил uiwebview в wkwebview. Во время внедрения JS он отображал ошибку, как показано ниже: «JavaScript выполнение вернуло результат неподдерживаемого типа», но то же самое JS работает в uiwebview. И я внедряю JS в методе didfini sh делегата. Поэтому, пожалуйста, дайте мне знать, как решить эту проблему. И Мой Javascript равен

{NSString * INJECT_ JS = @ "window.EasyJS = {__ callbacks: {}, invokeCallback: function (cbID, removeAfterExecute) {var args = Array.prototype.slice.call (arguments); args.shift (); args.shift (); for (vari = 0, l = args.length; i var cbID = \ "__cb \" + (+ новая дата); Ea sy JS .__ callbacks [cbID] = args [i]; formattedArgs.pu sh (cbID);} else {formattedArgs.pu sh (\ "s \"); formattedArgs.pu sh (encodeURIComponent) (args [i]));}} var argStr = (formattedArgs.length> 0? \ ": \" + encodeURIComponent (formattedArgs.join (\ ": \")): \ "\"); var iframe = document.createElement (\ "IFRAME \"); iframe.setAttribute (\ "src \", \ "easy- js: \" + obj + \ ": \" + encodeURIComponent (functionName) + argStr); document.documentElement.appendChild (iframe); iframe.parentNode.removeChild (iframe); iframe = null;
var ret = Easy JS .retValue; Easy JS .retValue = undefined; if (ret) {return decodeURIComponent (ret);}}, inject: function (obj, method) {window [obj] = { }; var jsObj = window [obj]; for (var i = 0, l = method.length; i

...