<span class="keyword">public</span> <span class="keyword">class</span> WebViewHook <span class="keyword">implements</span> IXposedHookLoadPackage {
<span class="comment">// handleLoadPackage 会在android加载每一个apk后执行</span>
<span class="keyword">public</span> void handleLoadPackage(LoadPackageParam lpparam) throws Throwable {
<span class="comment">// 可以从lpparam中获取当前apk的名字</span>
<span class="keyword">if</span> (! lpparam.packageName.equals(<span class="string">"com.tencent.mobileqq"</span>)) {
<span class="keyword">return</span>;
}
XposedBridge.log(<span class="string">"WebViewHook handleLoadPackage: "</span> + lpparam.packageName);
<span class="comment">// 勾住 WebView 所有的构造器</span>
XposedBridge.hookAllConstructors(WebView.<span class="keyword">class</span>, <span class="keyword">new</span> XC_MethodHook() {
@Override
<span class="keyword">protected</span> void beforeHookedMethod(MethodHookParam param) throws Throwable {
<span class="comment">// 打开webContentsDebuggingEnabled</span>
XposedHelpers.callStaticMethod(WebView.<span class="keyword">class</span>, <span class="string">"setWebContentsDebuggingEnabled"</span>, <span class="keyword">true</span>);
XposedBridge.log(<span class="string">"WebViewHook new WebView(): "</span> + packageName);
}
});
}
}