如何从 TVML 中的 settings.bundle 检索值?
How to retrieve values from settings.bundle in TVML?
在我的 tvOS 应用程序中,我创建了一个设置包,但我不知道如何获取 TVML 中的值。我知道如何在 Obj-c 或 Swift.
中做到这一点
var standardUserDefaults = NSUserDefaults.standardUserDefaults()
var us: AnyObject? = standardUserDefaults.objectForKey("your_preference")
if us==nil {
self.registerDefaultsFromSettingsBundle();
}
关于 TVML 方式有什么想法吗?非常感谢任何形式的帮助。
我不知道直接 TVJS 访问方法...但您可以轻松设置 Swift/Obj-C-"proxy"。有点像这样:
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(...)
在我的 tvOS 应用程序中,我创建了一个设置包,但我不知道如何获取 TVML 中的值。我知道如何在 Obj-c 或 Swift.
中做到这一点var standardUserDefaults = NSUserDefaults.standardUserDefaults()
var us: AnyObject? = standardUserDefaults.objectForKey("your_preference")
if us==nil {
self.registerDefaultsFromSettingsBundle();
}
关于 TVML 方式有什么想法吗?非常感谢任何形式的帮助。
我不知道直接 TVJS 访问方法...但您可以轻松设置 Swift/Obj-C-"proxy"。有点像这样:
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(...)