Mar*_*ira 22 html javascript web-applications apple-tv tvos
大多数电视应用都是基于网络的(html,javascript和css),我想将现有的电视网络应用移植到tvOS.
Xcode中的SDK没有显示类似于iOS的Webview实现,用于创建基于html,javascript和css的应用程序,但是,根据文档,可以使用javascript使用tvjs框架,但是不是html,而是苹果拥有自己的标记语言电视称为TVML.
我的问题是:是否可以将现有的Web应用程序移植到tvOS(如何?),还是需要从头开始重新实现?
谢谢你的帮助.
jce*_*ile 38
编辑:在人们保持低调之前,我将明确表示UIWebView存在于Apple TV上,但是禁止使用它,因此,在Apple TV上加载Web应用程序的唯一真正方法是使用TVML创建它们和TVJS
如果您想使用UIWebView(作为概念证明),您可以这样做:
Objective-C的
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];
Run Code Online (Sandbox Code Playgroud)
迅速
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)
Run Code Online (Sandbox Code Playgroud)
魔法!!!该UIWebView是有!但是你不能用它来迭代,只显示网页或网页内容.
UPDATE!我发现github上有很多基于https://github.com/steventroughtonsmith/tvOSBrowser的tvOS浏览器,但大多数需要在Xcode应用程序上调整Availability.h.我找到了一个使用我的方法的fork,所以它不需要调整Availability.h https://github.com/FabioSpacagna/tvOSBrowser 它们添加了对导航的基本支持,比如滚动和光标
我不认为苹果会批准应用程序,UIWebView因为它标记为禁止,你必须学习TVML,TVJS而不是.
这是 jcesarmobile 解决方案的 Swift 版本。
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)
Run Code Online (Sandbox Code Playgroud)
我正在构建一个不需要通过 App Store 的企业应用程序,所以这个解决方案对我有用。