JS怎么样调用IOS并且传递参数?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了JS怎么样调用IOS并且传递参数?相关的知识,希望对你有一定的参考价值。

值传递仅仅传递的是值
引用传递,传递的是内存地址,修改后会改变内存地址对应储存的值。
用数组来举例就最清楚了,例如我们定义一个数组a[]=1,2;
那么a[0]=1,a[1]=2。
如果我们把数组a里的元素值作为参数传递,实际上只是进行了值传递,对数组本身没有影响
如果我们把 数组a的指针作为参数传递,那么假如处理的函数就可以直接修改数组a里的值。
代码实例:(只是写个大概的逻辑,语法可能有错误)
main()

int a[]=1,2;
test(a);
printf(a[0]); //此处打印的值是3, 这就是引用传递。

public void test(int b[])

b[0]=3;
参考技术A 可以看下javascriptcore框架的文档,这个框架让Objective-C和JavaScript代码直接交互变得非常简单方便。如果是Cordova,可以通过写扩展的方式。如果是WebKit,可以通过Cocoa的API。

iOS -OC调用js页面

我们这边和h5商量好传递一个结构体参数过去,然后由于解析的问题,导致我这里传递的参数,到h5那边不执行那边的方法

-(void)loginCallBack

{

    NSDictionary *dic;

     user = [IBKeychain loadValueForKey:kUserKey];

    if (user) {

        dic= @{

               @"id":[user objectForKey:@"userId"],

               @"token":[user objectForKey:@"access_token"],

               @"appTag":@"IOS"

               };

        

    }else{

        dic= @{

//               @"id":@"",

               @"token":@"",

               @"appTag":@"IOS"

               };

    }

    

    NSData *jsonData = [NSJSONSerialization

                        dataWithJSONObject:dic options:0

                        error:nil];

    

    NSString *result = [[NSString alloc] initWithData:jsonData  encoding:NSUTF8StringEncoding];

    NSString *jsStr = [NSString stringWithFormat:@"appLoginCallBack(‘%@‘);",result];

    [self.webView  stringByEvaluatingJavaScriptFromString:jsStr];

    //    return;

}

 然后这样就可以调用方法了

- (void)webViewDidFinishLoad:(UIWebView *)webView

{

    [self hideLoadingView];

    

    [self loginCallBack];

}

以上是关于JS怎么样调用IOS并且传递参数?的主要内容,如果未能解决你的问题,请参考以下文章

按钮使用onclick调用js函数参数传递问题

thinkphp js参数传递问题

iOS 应用跳转、参数传递

js--函数参数(你可能不知道的参数传递)

js setTimeout如何调用自身所在的函数(有参数传递的)?

在C#后台调用window.open,,并且传递参数。。怎么写 啊?? 我是菜鸟,请详细点