Objective C将数据发送到phonegap并调用javascript函数
Posted
技术标签:
【中文标题】Objective C将数据发送到phonegap并调用javascript函数【英文标题】:Objective C send data to phonegap and call javascript function 【发布时间】:2014-09-15 14:21:47 【问题描述】:我正在使用 phonegap 开发一个 ios 应用程序。因为需要实现人脸识别,所以这里也使用了原生语言objective-c。
在主故事板中,我有两个视图控制器。一个叫做“FaceRec”,它完全是使用objective-c创建的。人脸识别功能在这里实现。另一个是 phonegap 主视图控制器。它们通过使用标签栏控制器连接。
问题是当用户从标签栏控制器进入 FaceRec 页面并从服务器获得响应时。如果响应为真,我不知道如何将该响应从 FaceRec 发送到 phonegap 主视图控制器。因为它们在不同的视图控制器中,我也不知道如何从objective-c调用javascript函数。
我知道通过使用插件我可以从javascript调用objective-c方法并获得响应,但我想要的是通过不同的视图控制器将数据从objective-c发送到phonegap并调用javascript函数。
有什么想法吗?提前致谢!
这是 index.html 中的代码:
<script type="text/javascript">
function login()
$(function()
$.mobile.navigate( "#main", transition : "slide", info: "info about the #bar hash" );
);
</script>
<div id="loginPage" data-role="page" data-theme="b">;
<div id="main" data-role="page" data-theme="b">
【问题讨论】:
您要查找How to create a cordova plugin
。尽管您可以在不制作插件的情况下实现所有内容,但插件框架将帮助您完成您提到的所有项目。
【参考方案1】:
从 Obj-C 调用 Javascript
函数,使用类似:
[self writeJavascript:@"YourJSFunction();"];
您也可以将任何内容作为字符串传递给JS
:
NSString *js = @"YourJSFunction('";
js = [js stringByAppendingString:yourData];
js = [js stringByAppendingString:@"');"];
[self writeJavascript:js];
yourData
必须是一个字符串。您基本上可以 JSON 序列化几乎任何数组或字典,然后将其传递给您的 javascript 函数。
【讨论】:
问题已解决。首先,我将来自 FaceRec 视图控制器的服务器响应传递给 phonegap,然后我使用 [self.webView stringByEvaluatingJavaScriptFromString:@"login()"];调用javascript函数。感谢您的建议。以上是关于Objective C将数据发送到phonegap并调用javascript函数的主要内容,如果未能解决你的问题,请参考以下文章
使用 Objective C 创建 JSON 数据并将其发送到服务器
如何从Javascript调用Objective-C方法并将数据发送回iOS中的Javascript?
使用 NSString 变量在 PhoneGap 中从 Objective C 编写 JavaScript