¿Es posible ejecutar código JavaScript (tal vez tener un NSString
como entrada) sin utilizar un UIWebView
? Me gustaría ejecutar este código en un hilo separado para que UIWebView no sea posible y realmente no quiero renderizar nada, solo recuperar los resultados.¿Es posible ejecutar javascript sin UIWebView?
Respuesta
No he probado esto, pero aquí está una idea:
Escribir código para asignar un vacío UIWebView
pero no lo agrega como una subvista cualquier lugar, y simplemente llame directamente - (NSString *)stringByEvaluatingJavaScriptFromString:(NSString *)script
en su Javascript.
A continuación, utilice NSOperation
para funcionar que en paralelo.
¿Alguna razón que podría no funcionar para usted? Creo que evitaría mostrar nada para el UIWebView
.
Como nota al margen, no puedo pensar en algo que puede hacer en javascript que no se puede hacer más rápido directamente en Objective-C. Excepto tal vez el análisis de javascript que obtiene externamente, lo que puede ser considerado un no-no por parte de Apple, dependiendo de los detalles.
Las conjeturas sobre sus metas: Si desea analizar una respuesta del servidor JSON, recomiendo el json-framework library hosted on google code. Tiene una interfaz agradable, y es sorprendentemente fácil de aprender e integrar.
creo que el artículo de Parmanoir Taming JavascriptCore within and without WebView le puede dar un consejo.
JavaScriptCore no está expuesto en el SDK (WebKit es un marco privado) pero el enlace es muy interesante, ¡gracias! – user130444
self.timer = [NSTimer scheduledTimerWithTimeInterval:0.1 target:self selector:@selector(getResults:) userInfo:nil repeats:YES];
-(void)getResults
{
NSString *value = [self.webView stringByEvaluatingJavaScriptFromString:@"javascript"];
}
Cualquier razón por la que no puedas hacer algo como esto. No debería ser tan grande como una sobrecarga en su hilo principal.
- 1. ¿Es posible ejecutar scripts Node.js sin invocar `node`?
- 2. ¿Es posible abrir enlaces emergentes en UIWebView?
- 3. Ejecutar JavaScript en un UIWebView antes de ejecutar cualquier otro JavaScript
- 4. ¿es posible usar iframe en UIWebView?
- 5. ¿Es posible ejecutar una aplicación Adobe AIR sin instalación?
- 6. ¿es posible ejecutar código javascript en .net framework?
- 7. Cómo ejecutar el archivo HTML + javascript ejecutado en UIWebView. .?
- 8. ¿Es posible ejecutar una cadena en MySQL?
- 9. ¿Es posible hacer un menú desplegable sin Javascript o Jquery
- 10. ¿Es posible desactivar AJAX sin desactivar completamente JavaScript?
- 11. ¿Es posible cargar gzip javascript comprimido sin un servidor web?
- 12. ¿Es posible hacer esto sin JavaScript (diseño html)
- 13. ¿Es posible establecer una cookie manualmente usando sharedHTTPCookieStorage para UIWebView?
- 14. UIWebView: ¿Puedes desactivar Javascript?
- 15. UIwebview sin memoria caché
- 16. Javascript se bloquea UIWebview
- 17. JavaScript - ejecutar una vez sin booleanos
- 18. inyección UIWebView CSS usando JavaScript
- 19. ¿Es posible CSRF sin cookies?
- 20. Javascript import html ¿es posible?
- 21. ¿Es posible ejecutar archivos binarios en Java?
- 22. ¿Es posible ejecutar apio automáticamente al inicio?
- 23. ¿Es posible ejecutar ZeroMQ en un Arduino
- 24. ¿Es posible ejecutar LINQPad con Mono (Mac)
- 25. ¿Es posible ejecutar CUDA en GPU AMD?
- 26. valor de retorno javascript UIWebView
- 27. Cerrar UIWebView usando javascript: window.close();
- 28. UIWebView scrollTo debe comportarse sin problemas
- 29. ¿Cómo es posible ejecutar varias instancias usando Backbone.Paginator.js?
- 30. es javascript multihilo posible con IFRAMEs
Esto no parece funcionar, por cada método UIWebView que trato de llamar obtengo "bool _WebTryThreadLock (bool), 0xf42930: Intenté obtener el bloqueo web de un hilo que no sea el hilo principal o el hilo web. puede ser el resultado de llamar a UIKit de un hilo secundario. estrellarse ahora ..." en cuanto a mis razones, estoy experimentando sobre todo :) – user130444
a menos que explícitamente documentada, no es seguro para llamar a cualquier método que no sea retener el * un objeto UIKit. Entonces no esperaría que esto funcione alguna vez. –
* el lanzamiento técnico es seguro para hilos por sí mismo, pero si usted es la última persona en liberar un objeto, puede causar que se ejecute dealloc en su hilo, lo que no siempre es seguro. –