如何更新 web UI 应用程序中的本机小部件实例(应用程序)?

How to update native widget instance(app) in web UI app?

我想在同一个包中制作 Tizen Wearable (2.3.1) 本机小部件应用程序和 Tizen Web UI 应用程序。

可能吗?

如果可能,如何更新网络 UI 应用程序中的本机小部件实例? 也就是说,web中的widget_service_trigger_update()API是什么?

谢谢!

据我所知,您不可能在同一包中制作本机小部件应用程序和 Web UI 应用程序。 您必须开发两个单独的应用程序。一个是本机小部件,另一个是网络 UI。但是您可以通过应用程序 ID 了解彼此的应用程序。 例如, 在网络应用程序中,

var widgetAppName = "XXXXXXXXX.weatherwidget";
if (reqAppControl && reqAppControl.callerAppId && reqAppControl.callerAppId == widgetAppName) {
        console.log("Launched by the widget.");
        if (reqAppControl.appControl.data[0].key == "city") {
            console.log("city from widget: " + reqAppControl.appControl.data[0].value);
            readfile(reqAppControl.appControl.data[0].value);   // Show latest data with received city
        }
    }

在网络应用程序中,我通过 应用程序 ID 了解本机小部件。

从本机小部件,您必须像这样设置网络 ui 应用程序的应用程序 ID,

app_control_set_app_id(control, "YYYYYYY.WeatherWebApp");

您可以从 this link 中找到此示例应用程序。下载示例应用程序并从此路径找到适合您目的的天气应用程序

Samples/Accessory/Samples(Web)/Weather/Consumer(Tizen)

希望我的想法对您有所帮助。

听说 2.3.1 web api 不支持 'widget_service_trigger_update()'。它支持从 2.3.2.

所以,我最终通过为这个问题添加一个本地服务应用程序来解决它。服务应用程序从 Web 应用程序接收应用程序控制,然后将 widget_service_trigger_update() 发送到特定小部件实例的本机小部件应用程序。

祝你好运。

** 当使用'widget_service_trigger_update()'时,应用程序必须打包在一起以解决权限问题。