35 lines
1.1 KiB
JavaScript
35 lines
1.1 KiB
JavaScript
(function() {
|
|
var code = [
|
|
'(function() {',
|
|
' var _realAndroid = window.android;',
|
|
' window.android = new Proxy({}, {',
|
|
' get: function(_, method) {',
|
|
' if (method === "then") return;',
|
|
' return function() {',
|
|
' var args = Array.prototype.slice.call(arguments);',
|
|
' var result = prompt("bridge:" + method, JSON.stringify(args));',
|
|
' return result;',
|
|
' };',
|
|
' }',
|
|
' });',
|
|
' if (_realAndroid) {',
|
|
' Object.keys(_realAndroid).forEach(function(k) {',
|
|
' try { window.android[k] = _realAndroid[k]; } catch(e) {}',
|
|
' });',
|
|
' }',
|
|
' setInterval(function() {',
|
|
' var code = prompt("bridge:_poll", "");',
|
|
' if (code) { try { eval(code); } catch(e) {} }',
|
|
' }, 2000);',
|
|
'})();'
|
|
].join('\n');
|
|
|
|
var script = document.createElement('script');
|
|
script.textContent = code;
|
|
var parent = document.head || document.documentElement;
|
|
if (parent) {
|
|
parent.appendChild(script);
|
|
script.remove();
|
|
}
|
|
})();
|