背景
最近有個(gè)項(xiàng)目,uni-app寫代碼邏輯方援,實(shí)現(xiàn)多端復(fù)用黎休,iOS端直接加載uni-app生成的H5頁(yè)面。
問(wèn)題
當(dāng)webview顯示html頁(yè)面時(shí)陶耍,本身會(huì)提供一些原生的交互行為奋蔚,例如長(zhǎng)按或雙擊選中。如何取消這些交互呢烈钞?
掃雷過(guò)程
- 雷1
查了很多資料泊碑,都說(shuō)在webview的代理方法中加入代碼:
- (void)webViewDidFinishLoad:(UIWebView *)webView {
[webView stringByEvaluatingJavaScriptFromString:@"document.documentElement.style.webkitUserSelect='none';"];
[webView stringByEvaluatingJavaScriptFromString:@"document.documentElement.style.webkitTouchCallout='none';"];
}
但我試了,這樣做沒(méi)效果...
- 雷2
另一種說(shuō)法是在html中添加全局的CSS
html, body{-webkit-user-select:none}
但這樣一來(lái)毯欣,頁(yè)面上的輸入框也變成不可選擇了馒过,所以還需要在input和textarea標(biāo)簽處把交互加回來(lái)
{-webkit-user-select:auto}
這種做法我試了,也不行酗钞,加回來(lái)后腹忽,輸入框還是選擇不了来累。。窘奏。
最終的解決方案
一頓操作后嘹锁,最后讓uni-app的同事加了一句代碼解決了
*:not(input,textarea){-webkit-user-select:none}