同步调用本机函数

Posted

技术标签:

【中文标题】同步调用本机函数【英文标题】:Call native function Synchronously 【发布时间】:2012-05-25 00:39:55 【问题描述】:

我使用 Phonegap Plugins 从 Java Script 调用我的 Objective C 函数。

但从 svn 上看到的源代码看来,异步行为(回调函数)实际上是 iPhone 处理调用的本机方式。

有没有一种方法可以让我在 ios-iPhone/iPad 应用程序中从我的 JS 进行同步调用?

我的 JS 应该做如下的事情

<script type="text/javascript">

function myfunc()

    var ret = CallMyObjCFunction();

    alert(ret);



</script>

【问题讨论】:

【参考方案1】:

一切都需要异步。您将函数的结果在 CDVPluginResult 中发送回 Javascript。

您的 javascript 可能看起来更像

function myfunc()

    function success(result) 
        alert(result);
    

    function fail() 
        alert("There was a problem");
    

    cordova.exec(success, fail, "YourPlugin", "CallMyObjCFunction", [])

【讨论】:

【参考方案2】:

没有。 iOS 公共 API 中似乎不存在此类同步调用。

【讨论】:

以上是关于同步调用本机函数的主要内容,如果未能解决你的问题,请参考以下文章

从本机iOS调用javascript函数

如何在 React 本机应用程序上从本机调用 JavaScript 函数

如何从cordova 3.x调用本机函数

从 c# 代码调用带有 void *parameter 的本机 c++ 函数

ReactNative - 无法从本机模块调用函数

JVM函数调用与从本机方法返回的性能?