初步完成数据交流.

This commit is contained in:
eson
2020-11-18 19:49:46 +08:00
parent e9cda54cb8
commit 93b9303ee1
14 changed files with 425 additions and 99 deletions

View File

@@ -1,5 +0,0 @@
function ExecuteTask(response) {
window.location.href = response.url;
}
ExecuteTask()

View File

@@ -2,34 +2,64 @@
var task_manager = {
}
function GetTask(sender) {
function GetRemoteTask(sender) {
fetch(TaskUrl).then(function (response) {
task_manager[sender.tab.id] = response;
chrome.tabs.executeScript(sender.tab.id, { "runAt": "document_end", file: "background/task.js" }, function (results) {
})
if (response.ok) {
response.json().then(function (value) {
// console.log(value);
if(value.code == 200) {
task_manager[sender.tab.id] ;
chrome.tabs.executeScript(sender.tab.id, {runAt: "document_end", code: `window.location.href = "${value.data.url}"` }, function (results) {
})
Tell(sender, InjectMsgType.FETCH);
} else {
Tell(sender, InjectMsgType.NOTASK);
}
})
} else {
console.log("error response:",response.text())
}
}).catch(function (reason) {
console.log(reason);
})
}
chrome.runtime.onMessage.addListener(function (request, sender, sendResponse) {
// console.log(request);
sendResponse({});
console.log(request, sender); // 利用sender tab id 返回正确的任务id
switch (request.type) {
case BackgroundMsgType.CONTENT:
console.log(request, task_manager, sender); // 利用sender tab id 返回正确的任务id
// TODO: 按照task id返回 拿到的内容
// 重新获取任务
GetRemoteTask(sender);
break;
case BackgroundMsgType.ERROR:
console.log(request, task_manager, sender); // 利用sender tab id 返回正确的任务id
// TODO: 按照task id返回 错误
// 重新获取任务
GetRemoteTask(sender);
break;
case BackgroundMsgType.GETTASK:
console.log(request, task_manager, sender); // 利用sender tab id 返回正确的任务id
GetRemoteTask(sender);
break;
case BackgroundMsgType.NOTWANT:
Tell(sender,InjectMsgType.WAIT);
break;
default:
break;
}
// sendResponse({type: MsgType.NEWURL, url: "https://playerduo.com/api/playerDuo-service-v2/rip113?lang=en&deviceType=browser"});
GetTask(sender);
sendResponse();
// GetRemoteTask(sender);
});
function Tell(sender, jnjectType) {
try {
chrome.tabs.sendMessage(sender.tab.id , {type: jnjectType})
} catch (error) {
console.log(error);
}
}