1

ausgeführt wird Ich zeige eine URL in meinem uiwebview und es funktioniert ordnungsgemäß.Detektieren der Javascript-Methode, die in Webview

Also die Webseite enthält tatsächlich einige Javascript-Funktionen (fun1, fun2, fun3 ...), die ausgeführt werden, sobald ich einen Teil über die Webansicht auswähle.

So ist meine Anforderung, die Javascript-Methode zu erkennen, die bei der Auswahl über Webview ausgeführt wird.

So habe ich über Webview UITapGestureRecognizer implementiert.

[myWebView addGestureRecognizer:tapGestureRecognizer]; 

Nun, wenn ich auf der Webansicht meine folgende Methode wählen genannt wird

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

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

} 

aber ich bin nicht die JavaScript-Methode erhalten, die ausgeführt wird, wie kann ich diese bekommen?

Hinweis: Irgendwo habe ich gelesen, dass arguments.callee.name; ist veraltet, also ist das das Problem?

Antwort

1

Sie müssen die JavaScript auf der Remote-Webseite ändern mit den aktuell laufenden Funktionsnamen eine globale Variable zu setzen, etwa so:

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

Dann aus der iOS-Seite Sie dies Ihren Code durch Änderung erreichen können sagen:

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

Macht das Sinn?

+0

Ich kann die Webseite nicht ändern, da ich keine Erlaubnis dafür habe. Es funktioniert immer noch nicht. – user1227928

+0

Sie können dies nicht erreichen, ohne die serverseitige JS zu ändern. – Sam