在自己的项目中。启动页面调用了这几个方法。
createWXInstance();// 构造一个view 填充到root里-注册rend的回调等onViewCreated,onRenderSuccess,onRefreshSuccess,onException这几个回调的注册
WXSDKInstance.renderByUrl
WXSDKInstance.renderByUrlInternal
WXSDKInstance.render或者请求bundle文件adapter.sendRequest(585行)
回调结果在WXSDKInstance.onHttpFinish里(1685行)
在这个一大坨函数中-有一个render方法-是我们关注的.其他都是一些输出。我暂时也没看(1773)
renderInternal--476行
最后在renderInternal里调用WXSDKManager.getInstance().createInstance(this, template, renderOptions, jsonInitData);
这里调用了下面2个方法
mWXRenderManager.registerInstance(instance);//这里做了一个注册。因为instanceid是一样的。所以在这里注册。下面获取也能去得到
mBridgeManager.createInstance(instance.getInstanceId(), code, options, jsonInitData);重点是这个函数
里面调用是invokeCreateInstance-这个函数调用的比较深-连着底层的native。看着应该是把当前页面的bundle.js(vue文件)加载过来。进行解析。
之后在WXRenderManager里会触发一堆回调
具体是这2个方法
runOnThread 这个方法是执行task-每一个task对应的是一个类型的action。这个action和vue.js的标签类型及属性参数是有对应的。可以自行打断点或者加log查看
postOnUiThread