1

tvOS アプリで設定バンドルを作成しましたが、TVML で値を取得する方法がわかりません。Obj-c または Swift でそれを行う方法を知っています。

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

TVML の方法に関するアイデアはありますか? どんな種類の助けも大歓迎です。

4

1 に答える 1

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(...)
于 2016-02-14T21:07:17.863 に答える