H5中js和ios的交互,js调用ios

xiaoxiao2021-02-27  140

直接上代码 js写法一: <a href='url' class='a_link' target='_blank' οnclick='clickXiaov(this)'>链接</a> js调用ios: js写法: function clickXiaov(obj){        var param1=obj.href;

       var param2 = "b";

     //  "xiaov://"为自定义协议头;

    //  param1¶m2为要传给ios的值,以":/"作为分隔

      window.location.href="xiaov:||"+":|"+param1+":|"+param2; } ios写法:  (BOOL)webView:(UIWebView *)webView shouldStartLoadWithRequest:(NSURLRequest *)request navigationType:(UIWebViewNavigationType)navigationType { if ([requestString hasPrefix:@"xiaov:||"]) {         // 以":||"为中心将url分割成两部分,放进数组arr         NSArray *arr = [requestString componentsSeparatedByString:@":||"];         NSLog(@"%@",arr);         //取其后半段         NSString *paramStr = arr[1];         NSLog(@"%@",paramStr);         //以":/"为标识将后半段url分割成若干部分,放进数组arr2,此时arr2[0]为空,arr2[1]为第一个传参值,arr2[2]为第二个传参值,以此类推         NSArray *arr2 = [paramStr componentsSeparatedByString:@":|"];         NSLog(@"%@",arr2);         //取出参数,进行使用         if (arr2.count) {             NSLog(@"有参数");             [self doSomeThingWithParamA:arr2[1] andParamB:arr2[2]];         }else{             NSLog(@"无参数");         }         return NO;     }     return YES; } js写法二: <a href="javascript:void(0);" id="btn" οnclick="clickXiaov(this)"></a> js调用ios: js写法: function clickXiaov(obj){                 window.webkit.messageHandlers.Xiaov.postMessage(null); } ios写法: [self.webView.configuration.userContentController addScriptMessageHandler:self name:@"Xiaov"];
转载请注明原文地址: https://www.6miu.com/read-16672.html

最新回复(0)