Открытие URL с часов на телефоне (Tizen) - PullRequest
0 голосов
/ 02 мая 2019

Я занимаюсь разработкой веб-приложения 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. Почему приложение не найдено?

1 Ответ

0 голосов
/ 03 мая 2019

Найден. Вам понадобится привилегия 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);
    }
}
...