Hola acabo de seguir el enlace por @Oh Danny Boy y me encontré con esta solución
de este hilo: http://forum.developers.facebook.net/viewtopic.php?pid=303257#p303257 fijo esto añadiendo lo siguiente a webViewDidFinishLoad: en FBDialog.m
[_webView stringByEvaluatingJavaScriptFromString:@"document.getElementsByName('cancel')[0].onclick = function onclick(event) { window.location.href = 'fbconnect://cancel'; return false;}"];
Esto hace que el botón cancelar llame correctamente a "fbconnect: // cancel" en lugar de "fbconnect: // success".
- (void)webViewDidFinishLoad:(UIWebView *)webView {
[_webView stringByEvaluatingJavaScriptFromString:@"document.getElementsByName('cancel')[0].onclick = function onclick(event) { window.location.href = 'fbconnect://cancel'; return false;}"];
[_spinner stopAnimating];
_spinner.hidden = YES;
self.title = [_webView stringByEvaluatingJavaScriptFromString:@"document.title"];
[self updateWebOrientation];
}
Su funciona bien:
Pero hay una cuestión más Si Facebook Cambio html entonces este código ya no funcionará. Mi solución a este problema es que:
En lugar de poner JavaScript estáticamente acaba de obtener desde el servidor a intervalos regulares o mecanismo similer
[_webView stringByEvaluatingJavaScriptFromString://We need to control this javascript from server//];
por lo que en el futuro podemos cambiar esta javascript en lugar de actualizar toda la aplicación.
espero que en el futuro este error se resolverá http://bugs.developers.facebook.net/show_bug.cgi?id=5958
funciona perfecto, gracias. – Vassily
Gracias @Pavel. Funcionó perfectamente bien. – Arslan
gracias, ¡casi creo que es imposible actualmente! – manmal