iOS中H5向native傳值或從H5跳轉(zhuǎn)到native

由于項(xiàng)目中H5頁面比較多,這幾天H5頁面中有個(gè)新需求:點(diǎn)擊H5頁面的某個(gè)按鈕需要傳遞參數(shù)和跳轉(zhuǎn)到Native頁面。
為了省事,找了個(gè)簡(jiǎn)單的方法:按鈕點(diǎn)擊后H5請(qǐng)求一個(gè)假的自定義的鏈接,把需要傳遞到Native的參數(shù)通過GET請(qǐng)求的方式拼接。然后再Native中WebView的delegate方法中去攔截URL,解析這個(gè)URL得到我們想要的值,并且跳轉(zhuǎn)到想要的頁面中去:
1:實(shí)現(xiàn)WebView的Delegate方法

- (BOOL)webView:(UIWebView *)webView shouldStartLoadWithRequest:(NSURLRequest *)request navigationType:(UIWebViewNavigationType)navigationType{
   return [WGH5PageViewModel redirectionWithRequest:request];
}


//這是WGH5PageViewModel中的一個(gè)方法
+ (BOOL)redirectionWithRequest:(NSURLRequest *)request{
    
    NSString *requestString = [[[request URL]absoluteString] stringByReplacingPercentEscapesUsingEncoding:NSUTF8StringEncoding];
    //轉(zhuǎn)正辦理(解雇員工時(shí)要從H5頁面跳到原生的離職頁面,并攜帶該員工的id
    if ([requestString containsString:@"dimission.html"]) {
        NSArray *strArr = [requestString componentsSeparatedByString:@"staffId="];
        NSString *staffId = strArr.lastObject;
        //由于使用了路由統(tǒng)跳,頁面所需要的數(shù)據(jù)都放在字典中,然后再把字典轉(zhuǎn)成String的形式傳遞到下一個(gè)頁面
        NSDictionary *dataDic = @{@"type":@"1",@"staffId":staffId};
        NSString *dicStr = dataDic.mj_JSONString;
       //push到指定的Native頁面
        [[HHRouter shared] pushURLString:[NSString stringWithFormat:@"/staffdimission/員工離職/%@",dicStr] animated:YES];
        return NO;
    }

    return YES;
}

由此簡(jiǎn)單的實(shí)現(xiàn)了從H5跳轉(zhuǎn)到指定的Native頁面并傳遞參數(shù)。
PS:方法中的關(guān)于路由通跳的實(shí)現(xiàn)可以參考我的這篇博文:http://www.itdecent.cn/p/9e29c6d9983a
其中我把HHRouter的方法改進(jìn)了一下,讓頁面的跳轉(zhuǎn)可以在任何Object中實(shí)現(xiàn)(之前只能在ViewController中push到下一個(gè)頁面,改進(jìn)后可以在model中,也可在View中push)。

native和js交互最好還是使用JSCore,jscore使用的例子請(qǐng)看github:https://github.com/voidxin/VXJSCore/tree/master/VXJSContext

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容