小编典典

tvOS中的Web应用

html

电视的大多数应用程序都是基于Web的(html,javascript和css),我想将现有的电视Web应用程序移植到tvOS。

Xcode中的SDK没有显示像iOS中那样的Webview实现,无法创建基于html,javascript和css的应用,但是根据文档,可以使用tvjs框架使用javascript ,但是Apple拥有自己的标记语言,而不是html用于称为TVML的电视。

我的问题是:是否可以将现有的Web应用程序移植到tvOS(如何?),还是需要从头开始重新实现?


阅读 393

收藏
2020-05-10

共1个答案

小编典典

编辑:在人们继续投票之前,我要弄清楚在Apple TV上存在UIWebView,但是 禁止 使用它,因此,在Apple
TV上加载Web应用程序的唯一真正方法是使用TVML创建它们和TVJS

如果要使用UIWebView(作为概念证明),可以执行以下操作:

目标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];

迅速

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)

更新!
我发现在github上有很多基于的tvOS浏览器,但其中大多数都需要在Xcode应用程序上调整Availability.h。我发现了使用我的方法的叉子,因此不需要调整Availability.h

他们添加了对导航的基本支持,例如滚动和光标

我认为Apple不会批准使用UIWebView被标记为禁止的应用程序,您必须学习TVMLTVJS不是。

2020-05-10