javascript函数访问ios本机功能

javascript function access ios native features

本文关键字:本机 功能 ios 访问 函数 javascript      更新时间:2023-09-26

这种情况:像PhoneGap一样,我想定义和调用一个不存在的JavaScript函数,它需要访问ios功能。例如

javascript代码:

function onClickButton(){
    toModule(true, true, "title1", 1);
}

我想通过toModule功能访问iOS功能。但是怎么做呢?你能告诉我吗?

PS:我知道JS->iOS的一个解决方案是使用UIWebViewDelegate的

- (BOOL)webView:(UIWebView *)webView shouldStartLoadWithRequest:(NSURLRequest *)request navigationType:(UIWebViewNavigationType)navigationType

但我不想要那个解决方案,只需处理JS函数到模块(…)

从javascript(phonegap)您不能直接访问ios本地代码,而是应该使用或开发一个phonegap插件来建立这种连接。

您可以在插件开发指南

中找到更多信息

这很简单步骤1)在项目中包含cordova.js文件步骤2)在您的javascript文件中包含cordova.js,并在您的javascript文件中添加以下代码

    cordova.exec(
                              function successCallback() {
                              }, 
function errorHandler(err) {
                              },
'Login', 'callLogin', [param]);
                              }

这里Login是本机类的名称,callLogin是Login类中的函数,param是要发送到本机文件的参数数组

Step3)转到config.xml和这个

<feature name="Login">
        <param name="ios-package" value="Login"/>
    </feature>

步骤4)

- (void)Login:(CDVInvokedUrlCommand*)command
    { // this is the native function, which is being called from javascript file, do your work here
     }

步骤5)如果你想把任何数据从本机发送回js文件,你需要写下面的代码。

NSString*jsCallBack=[NString-stringWithFormat:@"callJsFunction(parameters)];[self.webView字符串ByEvaluatingJavaScriptFromString:jsCallBack];

callJsFunction()是要从本机调用的js函数的名称。(只能发送字符串)

步骤6)要从原生到js获取值,您需要在js文件中编写callJsFunction(parameters)。在js文件中写入以下函数

callJsFunction(参数){}

这是从js调用本机函数和从本机类调用js的完整过程。