Я пытаюсь перехватить события внутри моего веб-просмотра, используя JS инъекцию. Я делаю все в соответствии с учебниками. Все работает хорошо, пока устройство не будет сброшено до заводских настроек. После сброса к заводским настройкам события не поступают, за исключением самого первого, который вызывается при введении впрыска.
javascript: (function() {
Android.sendMessage();
let methodRes = "";
let typeRes = "";
let formData = "";
let xhr = window.XMLHttpRequest.prototype;
let open = xhr.open;
xhr.open = function(method, url, async, user, password) {
methodRes = method;
typeRes = url;
open.call(this, method, url, async, user, password);
};
let send = xhr.send;
xhr.send = function(postData) {
formData = postData;
this.addEventListener("load", function() {
let message = { method: methodRes, url: typeRes, data: formData, response: this.responseText };
Android.sendMessage(JSON.stringify(message));
});
send.call(this, postData);
};
let ws = window.WebSocket;
window.WebSocket = function(a, b) {
var that = b ? new ws(a, b) : new ws(a);
that.addEventListener('message', function(msg) {
var message = msg.data;
Android.sendMessage(message, true);
});
return that;
};
window.WebSocket.prototype = ws.prototype;
})()