javascript - online - jsfiddle example
Aplicación web en tvOS (6)
Aquí está la versión Swift de la solución de jcesarmobile.
let webViewClass : AnyObject.Type = NSClassFromString("UIWebView")!
let webViewObject : NSObject.Type = webViewClass as! NSObject.Type
let webview: AnyObject = webViewObject.init()
let url = NSURL(string: "https://www.google.com")
let request = NSURLRequest(URL: url!)
webview.loadRequest(request)
let uiview = webview as! UIView
uiview.frame = CGRectMake(0, 0, webDashboardView.frame.width, webDashboardView.frame.height)
webDashboardView.addSubview(uiview)
Estoy creando una aplicación empresarial que no tiene que pasar por la App Store, por lo que esta solución me funciona.
Apple lanzó ayer su SDK para Apple TV .
La mayoría de las aplicaciones para televisores están basadas en la web (html, javascript y css) y me gustaría portar una aplicación web de televisión existente a tvOS.
El SDK en Xcode no muestra una implementación de Webview como en iOS para crear aplicaciones basadas en html, javascript y css, sin embargo, según los documentos, es posible usar javascript usando el marco de tvjs , pero en lugar de html, apple tiene su propio lenguaje de marcado para televisores llamados TVML .
Mi pregunta es: ¿es posible portar una aplicación web existente a tvOS (¿cómo?), O es necesario volver a implementarla desde cero?
Gracias por tu ayuda.
De acuerdo con las diferencias de API , UIWebView, etc.no son parte de tvOS. Por lo tanto, deberá volver a implementar la aplicación usando TVML (Lenguaje de marcado de TV) usando las plantillas de Apple. O puede volver a implementar usando UIKit.
Desafortunadamente, UIWebView no es una clase compatible en tvOS. Niether es WKWebView. Puede ver una lista completa de las API compatibles y eliminadas en iOS 9 y tvOS aquí . Si se desplaza hacia abajo hasta la parte inferior de la primera sección, verá que WebKit dice que se eliminó.
EDITAR: antes de que la gente siga votando, voy a dejar en claro que UIWebView está presente en el Apple TV, pero está PROHIBIDO usarlo, por lo tanto, la única forma real de cargar aplicaciones web en un Apple TV es crearlas con TVML y TVJS
Si desea utilizar un UIWebView (como prueba de concepto) puede hacer esto:
C objetivo
Class webviewClass = NSClassFromString(@"UIWebView");
id webview = [[webviewClass alloc] initWithFrame:self.view.frame];
NSURL * url = [NSURL URLWithString:@"https://www.google.com"];
NSURLRequest * request = [NSURLRequest requestWithURL:url];
[webview loadRequest:request];
[self.view addSubview:webview];
rápido
let webViewClass : AnyObject.Type = NSClassFromString("UIWebView")!
let webViewObject : NSObject.Type = webViewClass as! NSObject.Type
let webview: AnyObject = webViewObject.init()
let url = NSURL(string: "https://www.google.com")
let request = NSURLRequest(URL: url!)
webview.loadRequest(request)
let uiview = webview as! UIView
uiview.frame = CGRectMake(0, 0, view.frame.width, view.frame.height)
view.addSubview(uiview)
¡¡¡MÁGICO!!!
¡El
UIWebView
está ahí!
Pero no puedes interactuar con él, solo muestra páginas web o contenido web.
¡ACTUALIZAR! Descubrí que hay muchos navegadores tvOS en github basados en https://github.com/steventroughtonsmith/tvOSBrowser , pero la mayoría de ellos requieren ajustar Availability.h en la aplicación Xcode. He encontrado una bifurcación que utiliza mi enfoque, por lo que no requiere ajustar Disponibilidad. H https://github.com/FabioSpacagna/tvOSBrowser Añaden soporte básico para navegar, como desplazamiento y un cursor
No creo que Apple apruebe las aplicaciones usando
UIWebView
ya que está marcado como prohibido, en su lugar, tendrá que aprender
TVML
y
TVJS
.
Si está buscando portar su aplicación existente a tvOS, es posible que desee considerar el marco atvjs . Le daría la experiencia familiar de desarrollar cualquier aplicación pesada front-end. Es posible que aún necesite modificar su aplicación web existente para adaptar el marco, sin embargo, sería un proceso mucho menos doloroso que usar la arquitectura de muestra proporcionada por Apple.
Para comenzar, consulte https://github.com/emadalam/tvml-catalog-using-atvjs que es un puerto del código de muestra original, reescrito usando el marco atvjs .
UIWebView
es parte de tvOS, aunque la documentación parece un poco limitada en este momento
(ver aquí)
.
También puede encontrar el archivo .h aquí:
/Applications/Xcode-beta.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/SDKs/AppleTVOS.sdk/System/Library/Frameworks/UIKit.framework/Headers/UIWebView.h
El marco de WebKit no parece estar incluido.
Actualizar:
Encontrado en UIWebView.h:
NS_CLASS_AVAILABLE_IOS(2_0) __TVOS_PROHIBITED @interface UIWebView : UIView <NSCoding, UIScrollViewDelegate>
Teniendo esto en cuenta , podría no estar disponible en tvOS :(