LG WebOS 3.0 TV App - Luna连接管理器订阅hanlder

时间:2017-03-17 16:53:08

标签: javascript webos lg smart-tv

我正在为webOS 3.0开发LG 4K电视的电视应用程序。

我正在使用Luna Connection Manager订阅网络,如http://webostv.developer.lge.com/api/webos-service-api/connection-manager/中的LG开发人员文档所示

我有以下示例代码,我认为我的subscriptionHandle会自动检测网络是连接还是断开连接,并且我可以在断开连接时显示No Connection消息。

var connected = false;
var subscriptionHandle = webOS.service.request("luna://com.palm.connectionmanager", {
    method: "getStatus",
    parameters: { "subscribe": true },
    onSuccess: function (inResponse) {
        if (typeof(inResponse.subscribed) != 'undefined') {
            if (!inResponse.subscribed) {
                console.log("Failed to subscribe network state");
                return;
            }
        }
        console.log('inResponse.isInternetConnectionAvailable -- %o ', inResponse.isInternetConnectionAvailable);
        console.log("Result: " + JSON.stringify(inResponse));
        if (inResponse.isInternetConnectionAvailable) {
            connected = true;
            Main.reConnected(); // remove disconnect message
            $('#error').append('Network Connected');
        } else {
             Main.showNoConnection(); // show disconnect message
             connected = false;
            $('#error').append('Network Disconnected'); 
        }
    },
    onFailure: function (inError) {
        console.log("Failed to get network state");
        console.log("[" + inError.errorCode + "]: " + inError.errorText);
        connected = false;
        Main.showNoConnection();
        $('#error').append('Network Disconnected');
        return;
    }
});

加载应用后,它不会进入if条件。作为参考,我在#error元素中打印出连接状态。它永远不会得到更新。我错过了更多的步骤来完成这项工作吗?

我想要做的是当网络断开连接时,在屏幕上显示某种通知,并在建立连接时删除该消息。

1 个答案:

答案 0 :(得分:1)

根据LG开发者的说法,“目前,你应该使用luna://com.palm.connectionmanager用于webOS TV 1.0和luna://com.webos.service.connectionmanager用于webOS TV 2.0 / 3.0。 “

我的解决方法是使用luna://com.webos.service.connectionmanager,并且每15秒调用一次subscriptionHandle.getStatus()。