iphone - app - webview swift 4 example
iPhone UIWebView reproduciendo MP3. Protocolo de despido? (3)
Puede falsificarlo si tiene javascript cambie location.href y luego haga algo como esto:
- (BOOL)webView:(UIWebView *)webView shouldStartLoadWithRequest:(NSURLRequest *)request
navigationType:(UIWebViewNavigationType)navigationType {
NSString* path=[[request URL] relativePath];
BOOL shouldContinue=YES;
if ([path isEqualToString:@"/_my_custom_link"])
{
shouldContinue=NO;
// do magical stuff
}
return shouldContinue;
}
Si eso no funciona, siempre puede sondearlo haciendo una
stringByEvaluatingJavaScriptFromString
Así que no puedo encontrar ninguna documentación sobre cómo hacer esto, tal vez alguien sepa qué está pasando aquí.
Estoy en una UITableView (con un UINavigationController) en mi aplicación, y lanzando una UIWebView que carga un archivo mp3 en Internet presionando el controlador de la Vista Web en la pila del controlador de navegación. Esto funciona muy bien, el archivo se inicia y se reproduce en el reproductor quicktime que utiliza Safari.
El problema es que una vez que el archivo de audio se termina de reproducir, o el usuario hace clic en el botón hecho, el reproductor se libera y la aplicación regresa a una vista web vacía con mi barra de navegación. Puedo presionar el botón Atrás para volver a mi UITableView original, pero esa pantalla en blanco es fea y debe irse.
Entonces, ¿qué acción puedo usar para poner un mensaje [webviewcontroller.navigationcontroller popviewcontroller]? ¿Está cargando una instancia de alguna otra clase (como AVAudioPlayer) para reproducir el audio? ¿Necesito subclasificar algo? La documentación de Apple sobre cómo reproduce audio en UIWebView es básicamente inexistente.
Ok, entonces encontré una solución mucho mejor, mucho más simple; uno que tuve que eliminar líneas de código de mi aplicación para usar. Acabo de utilizar UIWebview initWithFrame: CGRectMake (0.0,0.0,1.0,1.0), no lo agregué a la vista, llamé NSURLRequest y lo conecté a mi botón. El reproductor multimedia se vuelve automático y automágicamente, y no es necesario llamar al controlador de navegación.
Esto podría salvar a alguien una hora o dos: el UIWebView se comporta de manera diferente en el dispositivo y en el simulador (circa iOS 4.1).
Acabo de pasar un tiempo tratando de descartar la vista web en el simulador, pero estaba trabajando en el dispositivo todo el tiempo.