php chrome红点,javascript – 使用PHP进行Chrome本机消息传递

我正在尝试构建一个可以通过Native Messaging与Chrome Extention进行通信的

PHP类.

我可以连接到我的代码,但在启动时Chrome会发送

chrome-extension://lkjcciocnocjjgpacggbaikjehbfedbl/ --parent-window=1837060

到我的PHP控制台应用程序(主机).我该怎么回复才能使连接正常工作?

在我的PHP代码下面.是的,它很脏,因为它是一个POC项目,我对Chrome Extensions很新,特别是当前的更新.

function out($data = ""){

$fp = fopen("php://stdout", "w");

if($fp){

$response = array("text" => "Ok");

$message = json_encode($response);

fwrite($fp, $message);

fflush($fp);

slog("[OUTPUT] " . json_encode($response));

fclose($fp);

exit(0);

}else{

slog("Can't open output stream.");

exit(1);

}

}

function err($data){

$fp = fopen("php://stderr", "w");

if($fp){

fwrite($fp, $data);

fflush($fp);

fclose($fp);

}

return;

}

function in(){

$data = "";

$fp = fopen("php://stdin", "r");

if($fp){

$data = fgets($fp);

fclose($fp);

}else{

slog("Can't open input stream.");

exit(1);

}

slog("[INPUT]" . $data);

return $data;

}

function slog($data){

if($data != ""){

file_put_contents("./log.txt", date("r").": {$data}\r\n", FILE_APPEND);

}

}

slog("Entering");

while(true){

if(($l = in()) !== ""){

out($l);

}else{

exit(0);

}

}

exit(0);

我的background.js代码. (延伸)

var port = null;

var hostName = "com.google.chrome.poc-extension";

function appendMessage(text) {

document.getElementById('response').innerHTML += "

" + text + "

";

}

function updateUiState() {

if (port) {

document.getElementById('connect-button').style.display = 'none';

}else{

document.getElementById('connect-button').style.display = 'block';

}

}

function sendNativeMessage() {

port = chrome.runtime.connectNative(hostName);

port.onMessage.addListener(onNativeMessage);

message = {"text": document.getElementById('input-text').value};

port.postMessage(message);

appendMessage("Sent message: " + JSON.stringify(message) + "");

}

function onNativeMessage(message) {

alert(message);

appendMessage("Received message: " + JSON.stringify(message) + "");

}

function onDisconnected() {

appendMessage("Failed to connect: " + chrome.runtime.lastError.message);

console.log(chrome.runtime.lastError);

port = null;

updateUiState();

}

function connect() {

appendMessage("Connecting to native messaging host " + hostName + "")

port = chrome.runtime.connectNative(hostName);

port.onMessage.addListener(onNativeMessage);

port.onDisconnect.addListener(onDisconnected);

updateUiState();

}

document.addEventListener('DOMContentLoaded', function (){

document.getElementById('connect-button').addEventListener('click', connect);

document.getElementById('send-message-button').addEventListener('click', sendNativeMessage);

updateUiState();

});

有this Python个示例应用程序,但我并没有真正得到它的确切做法.除此之外,它还使用了我不想要的Tkinter插件.我想要一个干净,简单和简单的扩展.

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值