如何从TVML中的settings.bundle中检索值? [英] How to retrieve values from settings.bundle in TVML?

查看:115
本文介绍了如何从TVML中的settings.bundle中检索值?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

在我的tvOS应用程序中,我创建了一个设置包,但是我不知道如何在TVML中获取值.我知道如何在Obj-c或Swift中做到这一点.

In my tvOS app I created a settings bundle, but I don't know how to get the values in TVML. I know how to do it in Obj-c or Swift.

var standardUserDefaults = NSUserDefaults.standardUserDefaults()
var us: AnyObject? = standardUserDefaults.objectForKey("your_preference")
if us==nil {
    self.registerDefaultsFromSettingsBundle();
}

关于TVML方式的任何想法吗?任何帮助都将受到高度赞赏.

Any ideas about TVML way? Any kind of help is highly appreciated.

推荐答案

我不知道直接的TVJS访问方法...但是您可以轻松地设置Swift/Obj-C-"proxy".大致符合以下条件:

I am not aware of a direct TVJS access method... but you could easily set up a Swift/Obj-C-"proxy". Somewhat along those lines:

AppDelegate.swift

AppDelegate.swift

func appController(appController: TVApplicationController, evaluateAppJavaScriptInContext jsContext: JSContext) {
    let jsInterface: cJsInterface = cJsInterface();
    jsContext.setObject(jsInterface, forKeyedSubscript: "swiftInterface")
}

JsInterface.swift

JsInterface.swift

@objc protocol jsInterfaceProtocol : JSExport {
    func getSetting(setting: String) -> String
}
class cJsInterface: NSObject, jsInterfaceProtocol {
    func getSetting(setting: String) -> String {
        return "<yourSetting>"
    }
}

在JS方面...

swiftInterface.getSetting(...)

这篇关于如何从TVML中的settings.bundle中检索值?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆