初步完成数据交流.
This commit is contained in:
@@ -1,5 +0,0 @@
|
||||
|
||||
function ExecuteTask(response) {
|
||||
window.location.href = response.url;
|
||||
}
|
||||
ExecuteTask()
|
||||
@@ -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);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user