Обнаружение метода javascript, который выполняется в webview - PullRequest
1 голос
/ 28 марта 2012

Я показываю URL в моем uiwebview, и он работает правильно.

Таким образом, веб-страница на самом деле содержит некоторые функции javascript (fun1, fun2, fun3 ...), которые выполняются, как только я выбираю какую-то часть в webview.

Таким образом, мое требование состоит в том, чтобы обнаружить метод javascript, который выполняется при выделении через веб-просмотр.

Итак, я реализовал UITapGestureRecognizer через веб-просмотр.

[myWebView addGestureRecognizer:tapGestureRecognizer]; 

Теперь, когда я выбираю в веб-просмотре, мой следующий метод называется

-(void)singleTap:(UIGestureRecognizer *)gestureRecognizer
{

   [myWebView stringByEvaluatingJavaScriptFromString:@"function getItem(){ var functionName =arguments.callee.name; alert(functionName);}getItem()"];

}

Но я не получаю метод javascript, который выполняется, как я могу получить это?

Примечание: Где-то я читал это arguments.callee.name; устарела, так это проблема?

1 Ответ

1 голос
/ 28 марта 2012

Вам нужно изменить JavaScript на удаленной веб-странице, чтобы установить глобальную переменную с именем текущей запущенной функции, например:

var CURRENT_FUNCTION = '';
function someFunction() {
    CURRENT_FUNCTION = 'someFunction()';
}

Тогда со стороны iOS это можно сделать, изменив кодсказать:

NSString *currentFunction = [myWebView stringByEvaluatingJavaScriptFromString:@"return CURRENT_FUNCTION"];

Имеет ли это смысл?

...