Вызов функции Javascript с параметрами из iOS ObjC
Я пытаюсь вызвать функцию Javascript с параметрами из iOS, используя «evaluateJavascript», все работает нормально, но значение параметров не отправляется, см. Код ниже
-(void) callJavascriptFunc: (NSString*)val{
//Example val is "Apple" string
[self.webview evaluateJavascript:@"exampleFuncName(val, '\(someConstant)')" completionHandler: nil];
}
Javascript:
exampleFuncName(value1: string, value2: string){
console.log("values == ", value1 + " , " + value2)
}
Консоль: ReferenceError: не удается найти переменную: val
Я могу вызвать функцию, но не могу передать переменную. Есть ли проблема с синтаксисом при вызове функции с оценкойJavascript?
Примечание. Я проверил, что val имеет значение.
1 ответ
Вам нужно создать строку, содержащую переданный аргумент, и использовать ее в качестве параметра для
-(void) callJavascriptFunc: (NSString*)val{
NSString* script = [NSString stringWithFormat:@"exampleFuncName('%@', '\(someConstant)')", val];
[self.webview evaluateJavascript:script completionHandler: nil];
}
Однако в зависимости от того, откуда берется значение параметра, вы должны убедиться, что внедрение кода невозможно!