如何将一个variables从JavaScript传递到客观的C和Objective C到Javasctipt在ios中

我是一个iOS开发人员,是JavaScript的新手。

我想创build一个Javascript到Objective C和Objective C到Javascript的通信。

如何将一个variables从JavaScript传递到客观的C和Objective C到Javasctipt在ios中。

如果有任何人有参考,请让我们知道这个?

我使用Parse CloudCode编程JavaScript。 就我而言,我使用CloudCode调用Stripe API。

例如:

Objective-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); } }); }); 

正如你所看到的,在这种情况下,为了将variables从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:// 。 然后你将在我之前写的委托方法中parsing请求。