Cordova - 与iOS原生代码交互1(通过JS调用Swift方法)

在前面的文章中介绍的了如何使用Cordova进行跨平台应用的开发,使用Cordova的话基本上就不需要在写系统原生代码了,只要通过编写html页面和js方法即可。
但在有些特殊情况下,还是是需要html页面能和系统原生代码(ios native code)进行交互。下面介绍如何实现 JS 与 Swift 代码间的相互通信。

假设我们已经建立了一个名叫 HelloWorld 的Cordova工程项目(不太清楚如何使用Cordova的可以参考我前面写的几篇文章:使用Cordova开发iOS应用实战1(配置、开发第一个应用))

Cordova - 与iOS原生代码交互1(通过JS调用Swift方法)_第1张图片
原文:Cordova - 与iOS原生代码交互1(通过JS调用Swift方法)

1,样例说明

(1)虽然使用Cordova创建的工程是一个 OC 工程,但由于苹果可以很方便的支持混合编程,所以我们用 Swift 来实现与 JS 的交互也是可以的。
(2)这里我们使用Swift来做个口令验证的功能,由于只是演示,所以代码很简单。Swift这边接收传输过来的口令字符串,判断正确与否并反馈回页面。如果验证失败还会返回具体的失败原因信息。

2,样例效果图
Cordova - 与iOS原生代码交互1(通过JS调用Swift方法)_第2张图片
Paste_Image.png
Cordova - 与iOS原生代码交互1(通过JS调用Swift方法)_第3张图片
Paste_Image.png
Cordova - 与iOS原生代码交互1(通过JS调用Swift方法)_第4张图片
Paste_Image.png
Cordova - 与iOS原生代码交互1(通过JS调用Swift方法)_第5张图片
Paste_Image.png
3,实现步骤

(1)我们在 Plugins 文件夹中新建一个Swift文件(HanggeSwiftPlugin.swift)。创建的时候系统会提示是否同时创建桥接头文件,这里选择确定。

Cordova - 与iOS原生代码交互1(通过JS调用Swift方法)_第6张图片
原文:Cordova - 与iOS原生代码交互1(通过JS调用Swift方法)

(2)在新生成的桥接头文件 HelloWorld-Bridging-Header.h 中把 Cordova/CDV.h 给 import 进来

#import 

**(3)新建的 HanggeSwiftPlugin.swift 中添加如下代码 **

Cordova - 与iOS原生代码交互1(通过JS调用Swift方法)_第7张图片
Paste_Image.png

(4)在 config.xml 中添加如下配置,将我们创建的功能类给配置上

Paste_Image.png

(5)首页 index.html 代码如下,修改运行后即可看到效果。

Cordova - 与iOS原生代码交互1(通过JS调用Swift方法)_第8张图片
Paste_Image.png

原文出自:
www.hangge.com
转载请保留原文链接:
http://www.hangge.com/blog/cache/detail_1150.html

你可能感兴趣的:(Cordova - 与iOS原生代码交互1(通过JS调用Swift方法))