Как использовать данные, полученные из нативного приложения на html-странице? - PullRequest
0 голосов
/ 10 июня 2018

Я использую собственное расширение для обмена сообщениями.Я отправляю строку в собственное приложение, поэтому зашифрую ее в своем родном приложении и отправляю зашифрованную строку на веб-страницу.

Это мой content_script.js:

window.addEventListener("message", function(event)  {
  if (event.source == window &&
      event.data &&
      event.data.direction == "from-page-script") {
    alert("send");
    browser.runtime.sendMessage(event.data);
}
});



function Sign(challenge) {            
            var j_Data = {}
            j_Data["command"] = "sign";
            j_Data["challenge"] = challenge;
            var j_Text = JSON.stringify(j_Data)
            window.postMessage
                ({
                    direction: "from-page-script",
                    message: j_Text,
                }, "*");

            //response = document.getElementById("result").value;
        }


/*
Send a message to the page script.
*/
function messagePageScript(request) {
    var str_Text = request["text"];
    var j_Text = JSON.parse(strText);
    var str_Command = jText["command"];

    if(str_Command == "signed")
    {
        var str_Signed_Data = jText["signeddata"];

    }       
    }


browser.runtime.onMessage.addListener(function(request, sender, sendResponse) {
    messagePageScript(request);
});

Он работает правильно.

при получении сообщения messagePageScript(request);.

Как использовать значение str_Signed_Data на моей html-странице?

Ответы [ 2 ]

0 голосов
/ 04 декабря 2018

Вы должны использовать обратный вызов JavaScript для возврата данных после получения данных из собственного приложения.

function KeyA3_Sign(challenge, funcSign) {   
   ...

   kHandler = getResponse.bind(null, funcSign);
   window.addEventListener("message", kHandler);
   window.postMessage(jsonData, "*");
}

function getResponse(func, event) {
   console.log("Call Get response");    
   func(event.data["text"]);
}
0 голосов
/ 10 июня 2018

Создайте функцию и верните данные, которые вы хотите отразить на html-странице, и используйте метод углового связывания для привязки данных на html-странице

...