Html決定網(wǎng)頁的內(nèi)容,css決定網(wǎng)頁的樣式,js決定網(wǎng)頁的事件
01 OC調(diào)用JS的代碼
NSString *str = [self.webView stringByEvaluatingJavaScriptFromString:@"sum()"];
02 JS怎么調(diào)用OC的說明
新的需求:點(diǎn)擊按鈕的時(shí)候撥打電話
但是我在點(diǎn)擊按鈕的時(shí)候,用戶是不知道的,我們怎么能夠知道用戶點(diǎn)擊了網(wǎng)頁上面的一個(gè)按鈕,只能通過一個(gè)技巧,那就是自己搞一個(gè)特定的協(xié)議頭比如說xmg://,當(dāng)我攔截到你的網(wǎng)絡(luò)請求的時(shí)候,只需要判斷一下當(dāng)前的協(xié)議頭是不是這個(gè)就能判斷你現(xiàn)在是否是JS調(diào)用。 OC里面有通過字符串生成SEL類型的方法,所以當(dāng)拿到數(shù)據(jù)之后做下面的事情
1)截取方法的名稱
2)將截取出來的字符串轉(zhuǎn)換為SEL
3)利用performSelect方法來調(diào)用SEL
03 涉及到的相關(guān)方法
[@"abc" hasPrefix:@"A"] //判斷字符串是否以一個(gè)固定的字符開頭,這里為A
//截串操作
- (NSString *)substringFromIndex:(NSUInteger)from;
//切割字符串,返回一個(gè)數(shù)組
- (NSArray<NSString *> *)componentsSeparatedByString:(NSString *)separator;
//替換操作
- (NSString *)stringByReplacingOccurrencesOfString:(NSString *)target withString:(NSString *)replacement
//把string包裝成SEL
SEL selector = NSSelectorFromString(sel);
04 如何屏蔽警告
#pragma clang diagnostic push
#pragma clang diagnostic ignored "-Warc-performSelector-leaks"
//-Warc-performSelector-leaks為唯一的警告標(biāo)識
[self performSelector:selector withObject:nil];
#pragma clang diagnostic pop