WKWebViewJavascriptBridge


1.git地址 https://github.com/marcuswestin/WebViewJavascriptBridge

2.引入頭文件 

#import <WKWebViewJavascriptBridge.h>

3.寫屬性

@property (nonatomic,strong) WKWebViewJavascriptBridge* mJsBridge;
@property (nonatomic,strong) WVJBResponseCallback payResponseCallback;

4.創建橋接對象,與 _mWebView 關聯

-(WKWebViewJavascriptBridge *)mJsBridge
{
    if (!_mJsBridge) {
        _mJsBridge = [WKWebViewJavascriptBridge bridgeForWebView:_mWebView];
        [_mJsBridge setWebViewDelegate:self];
    }
    return _mJsBridge;
}

5.注冊原生事件 requestPay 供 JavaScript 調用, data 是 JavaScript 傳給原生的數據。responseCallback 是原生給 JavaScript 回傳數據

-(void)registJsBridge

{

    @WeakSelf(self);

    [self.mJsBridge registerHandler:@"requestPay" handler:^(id data, WVJBResponseCallback responseCallback) {

        @StrongSelf(self);

        if (data&& [data  isKindOfClass:[NSDictionary class]]) {

            //payResponseCallback先記錄回調對象,便於下面異步處理后回傳給JS數據

            self.payResponseCallback = responseCallback;

            //原生拿到data做處理

            

        }

    }];

}

6.原生調 JavaScript 的事件 JS Echo

    [self.mJsBridge callHandler:@"JS Echo" data:nil responseCallback:^(id responseData) {
        NSLog(@"ObjC received response: %@", responseData);
    }];

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM