第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問題,去搜搜看,總會(huì)有你想問的

JavaScript和iOS交互遇到的坑

JavaScript和iOS交互遇到的坑

這段代碼寫的時(shí)機(jī)總是不對(duì)當(dāng)我們?cè)? (void)viewDidLoad中注入JS代碼之后,如果頁(yè)面發(fā)生了重定向,此時(shí)web頁(yè)面的JS已經(jīng)發(fā)生了變化,而- (void)viewDidLoad方法只會(huì)執(zhí)行一次,所以不再是之前我們注入過(guò)的那些JS了,此時(shí)再調(diào)用本地方法自然就失效了。如果我們?cè)? (void)webViewDidFinishLoad:(UIWebView )webView方法中注入JS,看起來(lái)貌似可以解決重定向之后調(diào)用失效的問題,因?yàn)閣ebView每次加載完成后都會(huì)回調(diào)- (void)webViewDidFinishLoad:(UIWebView )webView,也就是說(shuō)每次重定向之后,只要頁(yè)面加載完成,JS代碼就會(huì)重新被注入。如果JS調(diào)用OC方法的時(shí)機(jī)是在頁(yè)面加載完成之后,比如點(diǎn)擊web界面上的按鈕或者由用戶手動(dòng)觸發(fā)一個(gè)事件調(diào)用OC代碼,這種情況一定是web頁(yè)面加載完成之后才會(huì)發(fā)生的,而此時(shí)我們已經(jīng)重新注入了JS,這樣一點(diǎn)問題都沒有。但是,如果JS調(diào)用OC方法的時(shí)機(jī)剛好發(fā)生在頁(yè)面加載過(guò)程中呢?比如web界面加載過(guò)程中自動(dòng)執(zhí)行一些操作需要調(diào)用OC代碼,而此時(shí)- (void)webViewDidFinishLoad:(UIWebView *)webView還沒有回調(diào),所以我們的JS代碼并沒有重新注入,這里仍然會(huì)造成失效的問題于是我找到了相關(guān)的第三方webview的延展UIWebView+TS_JavaScriptContext但是還是沒有解決我的問題附上我的需求:js需要由客戶端去請(qǐng)求接口,請(qǐng)求到的數(shù)據(jù)返回給js h5拿到數(shù)據(jù)后進(jìn)行渲染,現(xiàn)在的問題是 比如一個(gè)h5界面需要三個(gè)串行數(shù)據(jù)請(qǐng)求之后才能渲染界面 相當(dāng)于調(diào)用了js方法三次,但是只執(zhí)行了一次js的方法 后面的都沒有調(diào)用,請(qǐng)問如何解決!!??!附上我用第三方延展的寫法
查看完整描述

1 回答

?
jeck貓

TA貢獻(xiàn)1909條經(jīng)驗(yàn) 獲得超7個(gè)贊

不是客戶端的問題,是js的問題,上面提到的就是解決uiwebview在渲染的時(shí)候調(diào)用js方法的答案,那種做法是正確的

查看完整回答
反對(duì) 回復(fù) 2018-09-26
  • 1 回答
  • 0 關(guān)注
  • 1017 瀏覽
慕課專欄
更多

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購(gòu)課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)