最近再开发phonegap的支付宝插件,遇到很多问题。对于不同oc的人来说简直是噩梦!
在不断的模式和尝试下,终于有了突破性的的进展。
这里就用到了一个方法,需要将支付宝支付完成后的结果反馈给html页面。
虽然用了插件机制,单返回结果依然不能用返回机制来传值,所以这里用到了stringByEvaluatingJavaScriptFromString。
下面是OC调用JS功能的一个简单的例子。
再你的html页面下一个方法
<script type=“text/javaScript”>
function postStr(str1,str2){
document.getElementById(“text1”).value=str1;
document.getElementById(“text2”).value=str2;
return document.getElementById(“text3”).value;
//return “javaScript返回值啦”;
}
</script>
这里的postStr 是oc中用到的js方法,将通过oc吧值传给该方法。
再项目的主文件里面定义一个这样的方法,
/*
* 点击事件
* 调用javaScript的方法postStr(str1,str2)并取得返回值
* 输出返回值到控制台
*/
-(IBAction)IOS_JS:(id)sender
{
//NSString *str = [self.webview stringByEvaluatingJavaScriptFromString:@”postStr();”];
//要传递的参数一
NSString *str1 = @”我来自于oc”;
//要传递的参数二
NSString *str2 = @”我来自于地球”;
NSString *str = [self.webview stringByEvaluatingJavaScriptFromString:[NSString stringWithFormat:@”postStr(‘%@’,’%@’);”,str1,str2]];
NSLog(@”JS返回值:%@”,str);
}关键点再这里
self.webview 这个需要换成 phonegap支持的 self.viewController.webView,具体参考项目代码!
转载请注明:夜阑小雨 » phonegap-ios开发–OC调用JS传递参数并获得返回值