通过打印日志发现每次进入一个页面这个H5Fragment都是一个新对象,那么我们知道上面调用rpcCall方法的参数H5PageImpl可以在H5Fragment中获取到,所以这里我们就需要这么做了,就是拦截这个pushFragment方法,然后保存当前最顶端的页面H5Fragment,然后用反射获取对应的H5PageImpl对象,最后在调用rpcCall方法执行命令即可,具体这几个类的关系是什么样的,继续看一下代码:
首先是H5Fragment类中有一个变量是H5ViewHolder类型的变量a:
然后是H5ViewHolder类中的有个变量h是保存当前的H5PageImpl类型:
而H5PageImpl内部有一个H5WebView类型变量f: