【问题标题】:How do I use data received from native app in html page?如何在 html 页面中使用从本机应用程序接收到的数据?
【发布时间】:2018-11-19 16:51:14
【问题描述】:

我使用本地消息传递扩展。我向本机应用程序发送一个字符串,因此在我的本机应用程序中对其进行加密并将加密的字符串发送到网页。

这是我的 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); 被调用。

如何在我的 html 页面中使用 str_Signed_Data 的值?

【问题讨论】:

    标签: javascript google-chrome-extension extension-methods chrome-native-messaging


    【解决方案1】:

    从原生应用获取数据后,必须使用 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"]);
    }
    

    【讨论】:

      【解决方案2】:

      创建一个函数并返回你想要在html页面中反映的数据,并使用angular bind方法在html页面中绑定数据

      【讨论】:

        猜你喜欢
        • 2013-10-28
        • 1970-01-01
        • 2023-03-29
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2020-01-22
        • 2012-06-06
        相关资源
        最近更新 更多