話不多言,直接上代碼,注意點都在註釋裏面了
setTimeout(function() {
Java.perform(function() {
//加載EditText類
var editText = Java.use("android.widget.EditText");
//加載CharSequence類
var CharSequence = Java.use("java.lang.CharSequence");
//hook getText()方法,這裏getText()返回的是Editable類,Editable又是繼承自CharSequnce類,
//所以講結果直接強轉爲CharSequence類。如果不做類型轉換,這裏console.log的輸出結果就是[object, Object]
editText.getText.overload().implementation = function() {
var result = this.getText();
var resultStr = Java.cast(result, CharSequence);
console.log("result: " + resultStr);
return result;
};
});
});