如何从TVML中的settings.bundle中检索值?

时间:2016-02-13 19:02:51

标签: tvos tvml settings-bundle

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

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

关于TVML方式的任何想法?任何形式的帮助都非常感谢。

1 个答案:

答案 0 :(得分:2)

我不知道直接的TVJS访问方法......但您可以轻松设置Swift / Obj-C - "代理"。有点像这样:

AppDelegate.swift

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

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(...)