在我正在開發的iOS應用中,我顯示一個UIWebView
以允許用戶升級其帳戶。該頁面包含的鏈接,以顯示該用戶的其他信息,但你按住鏈接在你的手指,像這樣的菜單會彈出: 防止iOS Webkit長按鏈接
正如你所看到的,它揭示了頁面的URL和的行動,將被執行,我不希望用戶看到,因爲我不希望他們能夠複製任何東西,因爲我已禁用「複製/剪切/粘貼」菜單。我怎麼去關閉這個菜單呢?
感謝您的指點。
在我正在開發的iOS應用中,我顯示一個UIWebView
以允許用戶升級其帳戶。該頁面包含的鏈接,以顯示該用戶的其他信息,但你按住鏈接在你的手指,像這樣的菜單會彈出: 防止iOS Webkit長按鏈接
正如你所看到的,它揭示了頁面的URL和的行動,將被執行,我不希望用戶看到,因爲我不希望他們能夠複製任何東西,因爲我已禁用「複製/剪切/粘貼」菜單。我怎麼去關閉這個菜單呢?
感謝您的指點。
我想你可以通過在鏈接上設置the CSS -webkit-touch-callout
property到none
來禁用該彈出窗口。你可以通過編輯你正在加載的HTML或CSS文件來完成,而不是使用Objective-C。
你想要做什麼,如Rob已經說明,是要禁用UIWebView
的默認上下文菜單。您可以通過添加以下行來webViewDidFinishLoad:
[webView stringByEvaluatingJavaScriptFromString:@"document.body.style.webkitTouchCallout='none';"];
如果你想都禁止彈出和文本的用戶選擇你的整個HTML頁,使用你的網頁的BODY實現它或全球CSS。
body {
-webkit-touch-callout: none;
-webkit-user-select: none;
-khtml-user-select: none;
-moz-user-select: none;
-ms-user-select: none;
user-select: none;
}
這起作用。但是,如果您擔心用戶更改CSS,請使用[其他答案](http://stackoverflow.com/a/15538022/642706)建議的編程方法。並搜索相關/重複的問題和答案。 – 2014-11-15 06:16:23
您可以使用'* {'而不是'body {'來覆蓋所有內容。 – 2014-11-15 06:17:22
如果你想讓你的輸入和textareas工作,你需要使用'*:not(input,textarea){}'' – 2015-08-06 19:14:55
沒有必要告訴你有一個鏈接的瀏覽器,然後迫使它不會表現得像一個!
只需完全刪除href="void(0)"
!
您的ontouchend
或onclick
屬性仍將工作。
如果你想正常的藍色/下劃線再看看,您可以添加這個CSS:
a .originalLink { color: blue; text-decoration: underline; cursor: pointer; }
這樣可以節省大量的CPU週期,尤其是當有幾百個鏈接的網頁,而用戶是平滑滾動。
您也可以使用此此擴展到正規網址:
<a class="originalLink" onclick="location.href='http://mylink';">Real URL Link</a>
當然你的SEO是窗外,但對於一個特定移動網絡應用程序的情況這可能是至關重要的。
快樂編碼!
有沒有什麼好的理由可以阻止用戶這樣做?對我來說似乎沒有麻煩會更容易。 – millimoose 2012-02-04 22:21:33