用WKWebView写个h5容器加载mpaas的离线包在线地址的步骤
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的离线包在线地址的步骤相关推荐
- Android开发——H5容器加载速度优化方案
1. 背景介绍 在偏重活动运营的电商App中,受制于App版本审核,具备开发周期短.可灵活发布等特点的H5页面受到青睐,承载了很多重要业务.但App Webview存在令人烦恼的性能问题,特别突出的是 ...
- 使用mPaas的H5容器加载tls有问题的https网页白屏的解决办法
1.给PSDWebViewURLProtocol添加分类 2.实现这个方法- (void)connection:(NSURLConnection *)connection willSendReques ...
- H5 水球加载动画 - canvas应用篇
水球加载动画 - canvas应用篇 效果图: html代码如下: <!doctype html> <html lang="en"> <head> ...
- h5首页加载慢_Webview加载H5优化小记
Webview加载H5优化小记 行到水穷处,坐看云起时 原文链接 一.概述 1.背景 鉴于H5的优势,客户端的很多业务都由H5来实现,Webview成了App中H5业务的唯一载体. WebView组件 ...
- IOC容器加载过程及Bean的生命周期和后置处理器
SpringIOC 容器加载过程 第一步:实例化化容器:AnnotationConfigApplicationContext @Configuration @ComponentScan("c ...
- 02.IOC容器加载过程及Bean的生命周期和后置处理器
Spring思维导图 SpringBean加载流程 SpringIOC加载过程-invokeBeanFactoryPostProcessors SpringIOC 容器加载过程 第一步:实例化化容器: ...
- js上拉加载ajax数据,原生ajax写的上拉加载实例
上拉加载的思路 1 上拉加载是要把屏幕拉到最底部的时候触发ajax事件请求数据 2.所有要获取屏幕的高度 文档的高度 和滚动的高度 下面的代码是已经做好了兼容的可以直接拿来用 Javascript: ...
- uniapp 开发h5 优化加载速度
uniapp 开发h5 优化加载速度 1.选择manifest.json.点击H5配置.勾选发行时启用摇树优化 这个功能可以减少网站体积加快首页渲染速度 2.配置nginx服务器,启用gzip压缩,示 ...
- h5首页加载慢_为什么你做的H5开屏那么慢?H5首屏秒开方案探讨
阿里妹导读: 越来越多的APP内业务使用H5的方式实现,怎样让H5页面启动更快是很多人在探索的技术点,本文梳理了启动过程中的各个点,分别从前端和客户端角度去探讨有哪些优化方案,供大家参考.作者:蚂蚁金 ...
最新文章
- 基于深度连续融合的多传感器三维目标检测
- 多线程join(加入)
- 用PHP实现var_export
- hdu4995 (不错的小模拟)
- 802.11协议中的action帧的使用
- Linux之CentOS防火墙及端口操作
- 【leetcode】Combinations (middle)
- SQL Server执行计划那些事儿(3)——书签查找
- 云图说|不要小看不起眼的日志,“小日志,大作用”
- ASP.NET Session的七点认识
- 写给数据小白:怎么让你的分析结论超出预期,不再是废纸一堆
- C#6中的新增功能 【Unity3D亲测】
- linux svnadmin,linux安装centos7.5基于SVN+Apache+svnadmin实现SVN的web管理
- 图解十大经典机器学习算法
- vue验证码图片显示不出来,将图片转换为base64格式显示
- 网站漏洞扫描工具--Safe3 Web Vul Scanner功能展示
- Unity3d基于订阅者模式实现事件机制_解决装箱拆箱问题和注册的监听事件单一问题
- 了解下STRAIGHT_JOIN
- 【BZOJ4027】【HEOI2015】兔子与樱花 贪心
- 搭建各类游戏如何选择合适的服务器