关于ios中oc和JavaScript的交互,包含vue

由于人力成本和时间成本,还有更新成本,现在移动端嵌H5的方式越来越多,这里面就牵扯到一些js和原生交互的问题。

先说我常用的JavaScriptCore

首先需要获取上下文


获取上下文

然后通过jscontext这个类的对象来进行一些操作


比如主动调用js的方法进行传值

比如让js来主动调用我们的原生方法


context里面的goback必须和前端方法命名一致


但是前端写的方法是写在vue的作用域里面,因为vue中的方法都封装在某一个作用域下的,也就是从逻辑上讲,我需要先拿到vue作用域的上下文,才有可能进行调用,但是找了一下资料并没有找到相应的资料。


前端代码如上,showAppAlertMsg能够调用。app里面的方法却不行。

那么这种情况下,iOS原生如何调用到vue里面的方法并且给里面的属性赋值,或者取值呢?

首先需要前端把vue的方法部分暴露出来赋值给window(必须的操作)。

然后直接通过webview的stringByEvaluatingJavaScriptFromString方法来进行调用

比如前端的这个方法:

可以通过这种方式进行调用

因为前端暴露出来后document也就变成了canvasdom,这个就代表了方法是在vue里面的,然后通过字符串点出方法就行了。括号里面的两个单引号里面可以带进需要传给前端的参数。



前端代码,vue里面定义的变量

比如需要给anotherpicurl变量赋值:


直接=就行了

如果需要取值,比如 canvasstatus的值。


打印出来就是等待数据加载完成

以上vue和iOS交互方式只能oc单方面调用js,不能js主动调用oc,需要的话,用JavaScriptCore框架.

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • AR从其技术手段和表现形式上,可以明确分为大约两类:一是Vision based AR,即基于计算机视觉的AR,二...
    困卡阅读 14,120评论 0 7
  • 我说,陌路。 你说,好。 从今以后 诗句里只有岁月,再没有你 岁月撕袍如长影 你终于只是我的印象 午夜温吞,不再露...
    梅凉阅读 4,785评论 71 64
  • 11月计划 之前的任务已经在第一期的作业中写过了,下面重点记录一下时间节点 8号: 完成一次: 《营销管理》输出 ...
    盛夏花开1990阅读 1,209评论 0 0