webkitview tutorial apple objective-c iframe uiwebview ios10

objective c - tutorial - Getting About: blank in shouldStartLoadWithRequest al pasar los datos de javascript a object-c usando IFRAME en IOS 10



wkwebview apple (1)

Estoy pasando mis datos de javascript a objetivo-c. para eso estoy usando IFRAME.
Aquí está mi código:
context.html

function openCustomURLinIFrame(src) { alert(src); var rootElm = document.documentElement; var newFrameElm = document.createElement("IFRAME"); newFrameElm.setAttribute("src",src); document.documentElement.appendChild(newFrameElm); //remove the frame now newFrameElm.parentNode.removeChild(newFrameElm); newFrameElm = null; }

Indoor.m

- (BOOL)webView:(UIWebView *)webView shouldStartLoadWithRequest:(NSURLRequest *)request navigationType:(UIWebViewNavigationType)navigationType { NSLog(@"Loading: %@", [request URL]); NSURL *url = [request URL]; NSString *urlStr = url.absoluteString; return [self processURL:urlStr]; }

estoy obteniendo

Cargando: sobre: ​​en blanco

Estoy usando xCode 8.2.1, está funcionando bien en IOS 9.3 pero no funciona en iOS 10.2.

Editar:
Mi captura de pantalla de alerta en el archivo .html.

Editar:
Método en el archivo html en el que llamo método openCustomURLinIFrame .

function calliOSFunction(functionName, args, successCallback, errorCallback) { var url = "js2ios://"; var callInfo = {}; callInfo.functionname = functionName; //alert("Custom menu clicked !!"+functionName); if (successCallback) { //alert("Success !!"+functionName); callInfo.success = successCallback; } if (errorCallback) { //alert("Error !!"+functionName); callInfo.error = errorCallback; } if (args) { //alert("args !!"+args); callInfo.args = args; } url += JSON.stringify(callInfo) openCustomURLinIFrame(url); }

Ayudame a resolver este problema.


Finalmente, después de mucho tiempo recibí mi respuesta.

function calliOSFunction(functionName, args, successCallback, errorCallback) { var url = "js2ios:///"; /* Added one more "/" */ var callInfo = {}; callInfo.functionname = functionName; //alert("Custom menu clicked !!"+functionName); if (successCallback) { //alert("Success !!"+functionName); callInfo.success = successCallback; } if (errorCallback) { //alert("Error !!"+functionName); callInfo.error = errorCallback; } if (args) { //alert("args !!"+args); callInfo.args = args; } url += JSON.stringify(callInfo) openCustomURLinIFrame(url); }

Agrego uno más "/" en la variable url .