WKWebView JS呼叫OC的方法

2022-03-10 01:47:18 字數 1533 閱讀 3214

1.在wkwebview中oc和js互動也非常簡單,webkit的庫中有個**wkscriptmessagehandler就是專門來做互動的。

wkscriptmessagehandler其實就是乙個遵循的協議,它能讓網頁通過js把訊息傳送給oc。其中協議方法。

- (void)usercontentcontroller:(wkusercontentcontroller *)usercontentcontroller didreceivescriptmessage:(wkscriptmessage *)message;

2.wkusercontentcontroller有兩個核心方法,也是它的核心功能。
1)- (void)adduserscript:(wkuserscript *)userscript;:js注入,即向網頁中注入我們的js方法,這是乙個非常強大的功能,開發中要慎用。

2)- (void)addscriptmessagehandler:(id )scriptmessagehandler name:(nsstring *)name;:新增供js呼叫oc的橋梁這裡的名稱對應wkscriptmessage中的名字,多數情況下我們認為它就是方法名。

3.wkscriptmessage,wkscriptmessage就是js通知oc的資料。其中有兩個核心屬性用的很多
@property (nonatomic, readonly, copy) nsstring *name;

- (void)addscriptmessagehandler:(id )scriptmessagehandler name:(nsstring *)name;新增的名稱。

@property (nonatomic, readonly, copy) id body;:攜帶的核心資料。

1.初始化wkwebview,並進行相應的配置
- (wkwebview *)webview 

return _webview;

}

2.在當前頁面引入wkscriptmessagehandler,並實現wkscriptmessagehandler協議即可。
- (void)usercontentcontroller:(wkusercontentcontroller *)usercontentcontroller didreceivescriptmessage:(wkscriptmessage *)message  else 

}

3.在js方法裡如何讓js通知wkwebview

function onclickbutton() ;

alert(dict);

// js通知wkwebview

window.webkit.messagehandlers.jscalloc.postmessage(dict);

}

4.使用wkwebview載入html頁面
- (void)viewdidload 

WKWebView js通訊的記憶體洩露問題

蘋果在wkwebview上做的最讚的事兒就是顯式的支援了js通訊。用法很簡單 乙個協議 wkscriptmessagehandler 乙個類 wkusercontentcontroller 建立乙個例項a,該例項遵循 wkscriptmessagehandler 協議,並將例項a與wkwebview...

OC方法呼叫過程

inte ce person nsobject void personmethod void personclassmethod end implementation person void personmethod void personclassmethod endperson新建的物件是怎樣去...

swift與OC混編(方法呼叫)

oc呼叫swift方法比較簡單。但是需要注意以下幾點 2.oc類裡僅可以呼叫public的swift方法和變數 3.swift類最好用 objc 進行描述 剩下的呼叫方式就和普通的oc之間呼叫方式類似了。swiftdemo demo swiftdemo alloc init demo logme 首...