Открытие URL с часов на телефоне (Tizen)

Я разрабатываю веб-приложение Tizen для Samsung Gear. (Используя Tizen 2.4)

В настоящее время я пытаюсь добавить функцию, которая позволяет пользователю открывать ссылку на своем телефоне через часы. Поэтому, когда он нажимает кнопку, URL-адрес открывается в браузере телефона по умолчанию. Я заметил, что другие приложения для умных часов имеют эту функцию.

После просмотра этих форумов я нашел пример кода:

var appControl = new tizen.ApplicationControl('http://tizen.org/appcontrol/operation/view',
'https://www.tizen.org', null, null, null, null);

tizen.application.launchAppControl(appControl, null, function() {
console.log('launch application control succeed');
}, function(e) {
console.log('launch application control failed. reason: ' + e.message);
}, null);

Однако когда я пытаюсь запустить его, я получаю следующую ошибку: "launch application control failed. reason: No matched application found."

В моем приложении есть следующие привилегии в добавленном файле конфигурации:

<tizen:privilege name="http://tizen.org/privilege/application.info"/>
<tizen:privilege name="http://tizen.org/privilege/application.launch"/>
  1. Правильно ли это приложение использовать для открытия ссылки в браузере телефона?
  2. Все ли это необходимые привилегии для этой функции?
  3. Почему не найдено приложение?

person Gilles Lesire    schedule 01.05.2019    source источник


Ответы (1)


Нашел. Вам понадобится привилегия application.launch.

function openBrowserOnPhone(url) {
    var appid = "com.samsung.w-manager-service";
    var type = "phone";

    var extra_data = [
              new tizen.ApplicationControlData("msgId", ["mgr_install_host_app_req"]),
              new tizen.ApplicationControlData("type", [type]),
              new tizen.ApplicationControlData("deeplink", [url])];
    var appControl = new tizen.ApplicationControl(
               "http://tizen.org/appcontrol/operation/default",
               null,
               null,
               null,
               extra_data);
    var appControlReplyCallback = {
            onsuccess: function(data) {
                console.log("launchUrl reply success");
                console.log("success: data = " + JSON.stringify(data));
            },
            onfailure: function() {
                console.log("launchUrl reply failed");
            }
        };
    try {
        tizen.application.launchAppControl(
                 appControl,
                 appid,
                 function() { console.log("intentBorba", "launchUrl success"); },
                 function(err) { console.log("intentBorba", "launchUrl failed: " + err.message); },
                 appControlReplyCallback);
    }catch(err) {
        console.error("[launcher] " + err);
    }
}
person Gilles Lesire    schedule 02.05.2019