如何在ios中将变量从javascript传递到目标C,将目标C传递给Javasctipt
How to pass a variable from javascript to objective C and Objective C to Javasctipt in ios
我是iOS开发人员,是javascript的新手。
我想在 Javascript 到 Objective C 和 Objective C 到 Javascript 之间创建通信。
如何在ios中将变量从javascript传递到目标C,将目标C传递给Javasctipt。
如果有人有参考资料,请告诉我们吗?
我在使用 Parse CloudCode 时编写 JavaScript 程序。 就我而言,我使用 CloudCode 来调用 Stripe API。
例如:
目标-C
NSDictionary *parameters = @{
@"customerId": stripeCustomerId,
@"amount": @(100),
};
[PFCloud callFunctionInBackground:@"chargeCustomer" withParameters:parameters block:block];
JavaScript
Parse.Cloud.define("chargeCustomer", function(request, response) {
Stripe.Charges.create({
amount: request.params.amount, // in cents
currency: "usd",
customer: request.params.customerId,
},{
success: function (httpResponse) {
console.log(httpResponse);
response.success(httpResponse);
},
error: function (httpResponse) {
console.error(httpResponse.message);
response.error(httpResponse.message);
}
});
});
如您所见,在这种情况下,要将变量从 objective-c 传递给 javascript,请使用 request.params。
如果您的目标是 iOS8,您可以考虑使用 WKWebView
而不是 UIWebView
,这在这方面有了很大的改进。好的起点是WKWebView
参考文档和这篇NSHipster文章。
您可以使用本机 iOS 对象来执行此操作。
从 Obj-C 到 JS
- (NSString *)stringByEvaluatingJavaScriptFromString:(NSString *)script
它在 UIWebview 中加载的页面中注入或调用预先存在的方法/对象。它返回 JS 返回给你的值
UIWebView 类参考
从 JS 到 Obj-C
实施UIWebView
协议,您可以在请求启动之前处理请求:
- (BOOL)webView:(UIWebView *)webView shouldStartLoadWithRequest (NSURLRequest *)request navigationType (UIWebViewNavigationType)navigationType
因此,从JS中,您必须使用自定义架构http调用URL,例如test://
。然后,您将在我之前编写的委托方法中解析请求。
相关文章:
- 为什么HTML5拖放的目标是孩子?(可排序列表)
- 如何覆盖锚点元素's href目标,并在我点击转到目标javascript时删除其他错误
- 对一个对象使用reduce可以返回一个没有't在数组中包含目标字母
- Href:当前DIV中的目标ID
- 当使用extern和目标JavaScript时,我如何强制Haxe编译器使用require语句
- 音频和动画在javasctipt循环中同步
- 以ECMAScript 5及更高版本为目标时,八进制文字不可用
- 如何使用ember.js在操作中传递当前上下文中目标旁边的信息
- Javascript事件.锚的目标问题
- 任何一种简单的方法都可以将带有onload的元素作为目标
- 使用javascript将表单提交到iframe目标中
- 如何将GreaseMonkey中的XMLHttpRequest延迟到目标页面加载完成
- 通过JavaScript设置表单目标
- 当两个单独的单词被放在目标上时,使用Jquery获取一个值
- 如何从目标C中的stringByEvaluatingJavaScriptFromString:方法执行长javascri
- Firefox事件.目标问题
- AngularJs的ng-click$事件将子元素作为目标传递
- 从定位目标中的元素中清除类
- three.js EffectComposer's渲染目标
- 如何在ios中将变量从javascript传递到目标C,将目标C传递给Javasctipt