У меня довольно простая идея.
var latestSelection = "";
while (true)
{
var tmp;
if ((tmp = document.getSelection()) != "")
latestSelection = tmp;
}
Таким образом, у вас всегда будет последний выбор в переменной latestSelection.Конечно, было бы дорого, чтобы такой цикл запускался постоянно.Поэтому вам, вероятно, захочется поиграть со слушателями или хотя бы таймерами.
Надеюсь, это поможет.
Обновление: Не используйте приведенный выше код как есть.
Вот как вы могли бы написать то же самое в target-c:
- (void) updateSelection
{
NSString * tmp = [webView stringByEvaluatingJavaScriptFromString:@"document.getSelection()"];
if (![tmp isEqualToString:@""])
latestSelection = tmp;
}
У вас может быть таймер, выполняющий updateSelection каждые x единиц времени.Если вы обнаружите хорошее уведомление о том, что пользователь взаимодействовал с веб-представлением, вы можете использовать его для обновления latestSelection.