1.获取在线加载url(前面博客有获取方法)

2.创建wkwebview,注入VConsole(前面博客有注入方法),注入PassData(前面博客有注入方法),注入PSDBRIDGEMESSAGEHANDLER,注入PSDXMLHTTPREQUESTMESSAGE,PSDBRIDGEDOMREADY目前不知道其用途可不注入

3.直接使用wkwebview加载(肯定白屏)

4.在- (void)webView:didFinishNavigation;方法内执行js语句

(1).@"typeof AlipayJSBridge == 'object'"

(2).@"typeof AlipayH5Performance == 'object'"

(3).@"typeof AlipayH5Share == 'object'"

(4).NebulaBiz 这个bundle下的所有js

(5)NebulaPoseidon 这个bundle下的所有js。对h5_bridge.js里面的需要替换的字符串进行替换(前面博客msgTKTarget已写)

5.在- (void)userContentController: didReceiveScriptMessage: 处理交互

(1)message.name 是PSDBRIDGEMESSAGEHANDLER下处理所有插件调用

(2)取参数queue,callbackId,handlerName,data

(3)将handlerName与注册插件的plist比对找到对应的类名,有Poseidon-UserDefine-Extra-Config.plist,有Poseidon-Extra-Config.pist,Poseidon-Config.plist,

(4)找到后对rpc进行处理,将参数取出使用原生发请求方式,

注意h5_requestBody = data[@"requestData"][0][@"_requestBody"][@"body"]

返回数据要包含head

(5)pushWindow处理,取参param,passData,url。拼接好url跳页加载

(6)getStartupParams处理,将上页传过来的passData,通过evaluateJavaScript传给h5

(7)startH5App处理,与pushWindow类似,多一个取在线加载url的步骤

(8)其他的插件则通过下边方法直接使用原来写好的

<1>通过类名实例化,创建后调用- (void)handler  context:   callback:方法

<2>context需要创建自己的YYYPSDContext添加currentViewController属性,currentViewControllerProxy属性,currentSession属性

YYYViewControllerProxy创建PSDContentView属性

<3>构造返回报文

reDic = @{@"responseId":callbackId,

@"responseData":responseData

};

转成json,替换特殊字符,添加[NSString stringWithFormat:@"AlipayJSBridge._handleMessageFromObjC('%@')",messageJSON]

6.在web控制器对于可能导致崩溃的其他使用到的属性进行添加

@property(nonatomic,retain)WKWebView *webView;

@property(nonatomic,retain)WKWebView *session;

@property(nonatomic,retain)NSMutableDictionary *expando

这样90%的页面都能正常加载与交互

用WKWebView写个h5容器加载mpaas的离线包在线地址的步骤相关推荐

  1. Android开发——H5容器加载速度优化方案

    1. 背景介绍 在偏重活动运营的电商App中,受制于App版本审核,具备开发周期短.可灵活发布等特点的H5页面受到青睐,承载了很多重要业务.但App Webview存在令人烦恼的性能问题,特别突出的是 ...

  2. 使用mPaas的H5容器加载tls有问题的https网页白屏的解决办法

    1.给PSDWebViewURLProtocol添加分类 2.实现这个方法- (void)connection:(NSURLConnection *)connection willSendReques ...

  3. H5 水球加载动画 - canvas应用篇

    水球加载动画 - canvas应用篇 效果图: html代码如下: <!doctype html> <html lang="en"> <head> ...

  4. h5首页加载慢_Webview加载H5优化小记

    Webview加载H5优化小记 行到水穷处,坐看云起时 原文链接 一.概述 1.背景 鉴于H5的优势,客户端的很多业务都由H5来实现,Webview成了App中H5业务的唯一载体. WebView组件 ...

  5. IOC容器加载过程及Bean的生命周期和后置处理器

    SpringIOC 容器加载过程 第一步:实例化化容器:AnnotationConfigApplicationContext @Configuration @ComponentScan("c ...

  6. 02.IOC容器加载过程及Bean的生命周期和后置处理器

    Spring思维导图 SpringBean加载流程 SpringIOC加载过程-invokeBeanFactoryPostProcessors SpringIOC 容器加载过程 第一步:实例化化容器: ...

  7. js上拉加载ajax数据,原生ajax写的上拉加载实例

    上拉加载的思路 1 上拉加载是要把屏幕拉到最底部的时候触发ajax事件请求数据 2.所有要获取屏幕的高度 文档的高度 和滚动的高度 下面的代码是已经做好了兼容的可以直接拿来用 Javascript: ...

  8. uniapp 开发h5 优化加载速度

    uniapp 开发h5 优化加载速度 1.选择manifest.json.点击H5配置.勾选发行时启用摇树优化 这个功能可以减少网站体积加快首页渲染速度 2.配置nginx服务器,启用gzip压缩,示 ...

  9. h5首页加载慢_为什么你做的H5开屏那么慢?H5首屏秒开方案探讨

    阿里妹导读: 越来越多的APP内业务使用H5的方式实现,怎样让H5页面启动更快是很多人在探索的技术点,本文梳理了启动过程中的各个点,分别从前端和客户端角度去探讨有哪些优化方案,供大家参考.作者:蚂蚁金 ...

最新文章

  1. 基于深度连续融合的多传感器三维目标检测
  2. 多线程join(加入)
  3. 用PHP实现var_export
  4. hdu4995 (不错的小模拟)
  5. 802.11协议中的action帧的使用
  6. Linux之CentOS防火墙及端口操作
  7. 【leetcode】Combinations (middle)
  8. SQL Server执行计划那些事儿(3)——书签查找
  9. 云图说|不要小看不起眼的日志,“小日志,大作用”
  10. ASP.NET Session的七点认识
  11. 写给数据小白:怎么让你的分析结论超出预期,不再是废纸一堆
  12. C#6中的新增功能 【Unity3D亲测】
  13. linux svnadmin,linux安装centos7.5基于SVN+Apache+svnadmin实现SVN的web管理
  14. 图解十大经典机器学习算法
  15. vue验证码图片显示不出来,将图片转换为base64格式显示
  16. 网站漏洞扫描工具--Safe3 Web Vul Scanner功能展示
  17. Unity3d基于订阅者模式实现事件机制_解决装箱拆箱问题和注册的监听事件单一问题
  18. 了解下STRAIGHT_JOIN
  19. 【BZOJ4027】【HEOI2015】兔子与樱花 贪心
  20. 搭建各类游戏如何选择合适的服务器

热门文章

  1. shell 数组元素有空格_Shell数组操作
  2. 部署Consul建立Docker集群
  3. iviewUI使用中遇到的问题与解决方案(一)
  4. HTML5+——APP实现热更新
  5. 圣路易斯联邦储备银行正使用其调查数据库追踪加密货币价格
  6. python修改mac地址_linux手动、自动更改网卡MAC地址的方法
  7. PADS layout pdf打印输出
  8. 第3课 PDM入门理论
  9. 史上最全Fragment介绍,包括fragment的定义,生命周期,用法
  10. android手势解锁说明