经验首页 前端设计 程序设计 Java相关 移动开发 数据库/运维 软件/图像 大数据/云计算 其他经验
当前位置:技术经验 » 移动开发 » iOS » 查看文章
iOS:WKWebView(19-01-25更)
来源:cnblogs  作者:leonlincq  时间:2019/1/28 9:36:13  对本文有异议

以前用得不多,先开一篇,以后有遇到再补充。

 

1、JS 调用 OC

1-1)、添加 和 JS 约定的消息名

  1. [self.userContentController addScriptMessageHandler:self name:@"约定的消息名"];

 1-2)、得到 JS 消息

  1. #pragma mark - WKScriptMessageHandler
  2. - (void)userContentController:(WKUserContentController *)userContentController didReceiveScriptMessage:(WKScriptMessage *)message
  3. {
  4. if ([message.name isEqualToString:@"约定的消息名"]) {
  5. NSLog(@"当前的消息为:%@", message.body[@"约定的key"]);
  6. }
  7. }

 1-3)、移除

  1. - (void)viewWillDisappear:(BOOL)animated{
  2. [super viewWillDisappear:animated];
  3. [self.userContentController removeScriptMessageHandlerForName:@"约定的消息名"];
  4. }

补充:这步最为重要,如果不移除,将得不到释放,比如H5的音乐在退出该VC(dealloc) 还会一直响。

 

附:JS代码

  1. function isAndroid(argument) {
  2. var u = navigator.userAgent;
  3. var flag = u.indexOf('Android') > -1 || u.indexOf('Adr') > -1; //android终端
  4. return flag;
  5. }
  6.  
  7. function isIOS(argument) {
  8. var u = navigator.userAgent;
  9. var flag = !!u.match(/\(i[^;]+;( U;)? CPU.+Mac OS X/); //ios终端
  10. return flag;
  11. }
  12. function share(要传的value) {
  13. if(isAndroid()){
  14.  
  15. } else if(isIOS()) {
  16. window.webkit.messageHandlers.约定的消息名.postMessage({
  17. "要传的key": 要传的value
  18. });
  19. }
  20. }

 

原文链接:http://www.cnblogs.com/leonlincq/p/10322030.html

 友情链接:直通硅谷  点职佳  北美留学生论坛

本站QQ群:前端 618073944 | Java 606181507 | Python 626812652 | C/C++ 612253063 | 微信 634508462 | 苹果 692586424 | C#/.net 182808419 | PHP 305140648 | 运维 608723728

W3xue 的所有内容仅供测试,对任何法律问题及风险不承担任何责任。通过使用本站内容随之而来的风险与本站无关。
关于我们  |  意见建议  |  捐助我们  |  报错有奖  |  广告合作、友情链接(目前9元/月)请联系QQ:27243702 沸活量
皖ICP备17017327号-2 皖公网安备34020702000426号