Я использую javascript для обнаружения длительного нажатия ( событие прикосновения, тогда редкие события прикосновения через 300 мс будут оцениваться как длительное нажатие, не требующее прикосновения ), затем использую javascript
document.location = "XXXXXXX";
чтобы отправить уведомление в верхнюю часть UIView.I гарантирую, что в коде js проблем нет.
Проблема возникает здесь: Тогда в делегате я написал
- (BOOL)webView:(UIWebView *)webView shouldStartLoadWithRequest:(NSURLRequest *)request navigationType:(UIWebViewNavigationType)navigationType {
/*
blablabla
*/
//show Contextual Menu
[webView resignFirstResponder];
CGRect viewRect = CGRectMake(0, 0, 320, 460);
ContextualMenu *menu = [[ContextualMenu alloc] initWithFrame:viewRect];
[menu becomeFirstResponder];
/*
blablabla
*/
return NO;}
Некоторая часть представления меню ContextualMenu * наполовину прозрачна, поэтому я вижу:
Когда я запускаю долгое нажатие в UIWebView и окно ContextualMenu выходит и закрывает UIWebView, мой палец все еще может прокручивать UIWebView (пока я не уберу палец с экрана)
Можно ли как-то остановить это поведение и переместить фокус из UIWebView в представление ContextualMenu , когда появляется ContextualMenu? (Игнорирование продолжающегося длинного нажатия)
UPDATE:
Я добавил этот код до и после того, как JS отправил уведомление в верхний UIView, но по-прежнему бесполезно. (Также пытался вызвать событие touchcancel триггера)
$(event.target).trigger('touchend');
$(event.currentTarget).trigger('touchend');