我想知道如何禁用UIActionSheets,特别是在UIWebView中点击并保存超链接后显示的动作表。默认情况下,这些似乎在UIWebViews中启用,其中包含警报标题中相应链接的链接地址。它们也在Safari中启用。
(如何)是否可以在UIWebView中禁用此类所有动作表?
提前致谢!
答案 0 :(得分:7)
我自己就找到了这个解决方案。将其添加到您的CSS:
body {
-webkit-touch-callout: none;
}
要清楚,这会禁用按住超链接时显示的操作表。
答案 1 :(得分:3)
您也可以通过调用以下方式处理此问题:
document.documentElement.style.webkitTouchCallout = "none";
答案 2 :(得分:2)
- (void)webViewDidFinishLoad:(UIWebView *)webView
{
[webView stringByEvaluatingJavaScriptFromString:@"document.body.style.webkitTouchCallout='none'; document.body.style.KhtmlUserSelect='none'"];
}
答案 3 :(得分:0)
dataDetectorTypes属性可能就是您要查找的内容。 如果要禁用该操作表可能性,只需插入代码:
webView.dataDetectorTypes = UIDataDetectorTypeNone;
答案 4 :(得分:0)
您可以在UINavigationController中覆盖presentViewController,并且不执行任何操作。
@implementation CDVInAppBrowserNavigationController : UINavigationController
- (void)presentViewController:(UIViewController *)viewControllerToPresent animated: (BOOL)flag completion:(void (^ __nullable)(void))completion NS_AVAILABLE_IOS(5_0){
//Do nothing.
}
@end