項(xiàng)目需求:有一個(gè)邀請(qǐng)有禮頁面,說白了就是一個(gè)h5的分享頁面娇昙,上面有一個(gè)按鈕尺迂,點(diǎn)擊此按鈕,前端會(huì)自己調(diào)用后臺(tái)接口,記錄是誰點(diǎn)擊分享了噪裕,
實(shí)現(xiàn):
使用 WKWebView 蹲盘,#import? ?<WebKit/WebKit.h>?
添加代理,WKUIDelegate,WKNavigationDelegate,WKScriptMessageHandler? 事實(shí)證明WKScriptMessageHandler 沒有作用
1:將token添加到請(qǐng)求頭中膳音,下面是wk設(shè)置的全部配置? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ??
2:需要在wkwebview 加載完成時(shí)召衔,需要把方法注入進(jìn)去,注意下圖中的callShareSdk 祭陷,這個(gè)是前端的調(diào)用方法苍凛,不能寫錯(cuò)了,需要iOS這里注入颗胡。
3:再來解釋圖1 中? ? token=6ba9f4d0f68d4bf1adb803983bf0f211; path=/; domain=192.168.1.11; HttpOnly? 這句話的意義毫深,這個(gè)句話是個(gè)固定格式,在iOS端需要將本地token傳到瀏覽器內(nèi)核中毒姨,需要這種格式,不然钉寝,僅僅是addvalue弧呐,,售淡,心铃,forHTTPHeaderField:返吻,,鸠蚪,這樣其實(shí)是沒用的,token=你從后臺(tái)拿到的token师溅,domain=你的ip茅信,注意沒有http://,其余格式是固定格式墓臭,復(fù)制粘貼就行蘸鲸。
4: 下圖 ,在代理方法中直接判斷是不是點(diǎn)擊的分享按鈕窿锉,通過這個(gè)代理方法即可獲取到你點(diǎn)擊按鈕到方法是不是需要分享按鈕的方法酌摇。(callShareSDK)是跟前端約定好的分享按鈕方法,
5:搞定嗡载,如有不足指出窑多,請(qǐng)大神指點(diǎn)。整個(gè)項(xiàng)目就兩個(gè)代理方法洼滚,一個(gè)是方法注入的代理方法埂息,一個(gè)是判斷是不是點(diǎn)擊分享按鈕的方法。也就是圖二和圖三
歡迎加入 iOS-OC&Swift交流群?群號(hào):529765630(順便打個(gè)廣告,我們的app名字:meetfit-約焦⑶邸)崭篡, 歡迎任何技術(shù)愛好者和iOS開發(fā)者進(jìn)群交流學(xué)習(xí)。