之前用UIWebView的時(shí)候丧鸯,非常的爽杠输,用JSContext這個(gè)類就可以做想做的事放案,現(xiàn)在要改成WKWebView就比較的坑爹了(這是為什么博主要換控件的原因)和蚪,因?yàn)椴┲餍枰陧?yè)面文件加載之前就把參數(shù)給到web端(js調(diào)用有返回值oc方法)双藕。把WKWebView的所以代理方法都看了一遍淑趾,發(fā)現(xiàn)只有下面方式能與js交互:
window.webkit.messageHandlers.<name>.postMessage();
但是這個(gè)是沒有返回值的,于是博主又想到了忧陪。如果讓web端用這個(gè)方法來通知博主這邊扣泊,再通過博主這邊調(diào)用web端近范,這樣好像是可以的,但遺憾的是web端通知了博主以后延蟹,是不會(huì)停止運(yùn)行的评矩,還是會(huì)走下去的,所以當(dāng)博主再調(diào)用web端傳參數(shù)時(shí)阱飘,這是沒有意義了斥杜。后來博主又想到,是不是可以讓web端通知博主后阻塞沥匈,然后當(dāng)博主傳完參數(shù)再執(zhí)行下去蔗喂,最后web端童鞋說很麻煩,就沒有動(dòng)了高帖。想了好長(zhǎng)一段時(shí)間缰儿,才想到是不是可以在web端頁(yè)面加載前,博主就把參數(shù)傳到瀏覽器的一個(gè)地方散址,然后web端去瀏覽器的那個(gè)地方取就行了乖阵。于是有了下面的寫法:
localStorage這個(gè)是網(wǎng)頁(yè)的本地存儲(chǔ)(H5的新東西)爪飘,相當(dāng)于iOS的NSUserDefaults义起,不過大小一般只有5M,這個(gè)與瀏覽器有關(guān)师崎。accessToken這個(gè)是與web端約定參數(shù)key,當(dāng)然你也可以像下面這樣寫:
localStorage["accessToken"] = "74851c23358c";
localStorage.accessToken ="74851c23358c";
博主的寫法是官方推薦的默终,反正官方說的,就按照官方的寫咯犁罩。想了解更多的localStorage的知識(shí)齐蔽,點(diǎn)這里。
PS:如果大家有更好的方法床估,可以在評(píng)論里寫出來含滴,或者私信博主,想要demo的點(diǎn)這里丐巫。