如何在 ios 中将变量从 javascript 传递到目标 C 和目标 C 到 Javascript
Posted
技术标签:
【中文标题】如何在 ios 中将变量从 javascript 传递到目标 C 和目标 C 到 Javascript【英文标题】:How to pass a variable from javascript to objective C and Objective C to Javasctipt in ios 【发布时间】:2015-01-23 07:42:16 【问题描述】:我是一名 ios 开发人员,不熟悉 javascript。
我想创建 Javascript 到 Objective C 和 Objective C 到 Javascript 之间的通信。
如何在 ios 中将变量从 javascript 传递给 Objective C 和 Objective C 传递给 Javasctipt。
如果有人有参考,请告诉我们?
【问题讨论】:
【参考方案1】:我在使用 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);
);
);
如您所见,在这种情况下,要将变量从 Objective-c 传递到 javascript,您可以使用 request.params。
【讨论】:
这个答案对 Parse 来说非常具体,而 OP 要求提供一种在本机代码和 JS 代码之间进行通信的通用方法。【参考方案2】:如果你的目标是iOS8,你可以考虑使用WKWebView
而不是UIWebView
,在这方面已经有了很大的改进。好的起点是the WKWebView
reference docs 和这个NSHipster article。
【讨论】:
目标是iOS 7,不使用swift..,基本通信将字符串传递给Objective C,如何接收该字符串..我如何在Javascirpt中调用Objc方法 如果你的目标是您可以使用原生 iOS 对象来执行此操作。
从 Obj-C 到 JS
- (NSString *)stringByEvaluatingJavaScriptFromString:(NSString *)script
它在 UIWebview 中加载的页面中注入或调用预先存在的方法/对象。它返回JS返回给你的值
UIWebView Class Reference
从 JS 到 Obj-C
实现UIWebView
协议,您可以在请求开始之前处理它:
- (BOOL)webView:(UIWebView *)webView shouldStartLoadWithRequest (NSURLRequest *)request navigationType (UIWebViewNavigationType)navigationType
因此,您必须从 JS 调用具有自定义架构 http 的 URL,例如 test://
。然后你会在我之前写的委托方法中解析请求。
【讨论】:
如果你对 JS 到 Obj-C 有任何想法,你能用一个例子来解释一下吗..,其实我已经尝试过.. 但没有实现.. 无法将对象从 js 获取到 ObjC 从 JS 调用window.location = "test://functionName?queryString";
并在前面列出的方法中,检查架构:if ([request URL] scheme] isEqualToString: @"test"] // doSomething
这对您有帮助吗? ***.com/questions/9473582/ios-javascript-bridge以上是关于如何在 ios 中将变量从 javascript 传递到目标 C 和目标 C 到 Javascript的主要内容,如果未能解决你的问题,请参考以下文章
如何在 React Native 中将事件从 iOS 发送到 javascript
如何在phonegap ios中将设备令牌从Xcode抓取到javascript?
如何在模板中将数据从 Flask 传递到 JavaScript?
在Codeigniter中将javascript变量从视图发送到控制器[重复]