我希望用户能够从我的 iphone 应用程序中将条形码扫描到网络表单中。通过这种方式,我一直在用 javascript 实现类似的东西。
NSString *javaScript = [NSString stringWithFormat:@"var textField = document.activeElement;"
"textField.value = '%@';" , barcode];
[webView stringByEvaluatingJavaScriptFromString:javaScript];
但是,当我使用相机扫描仪时,它必须加载一个新视图并且 webview 失去焦点。有没有办法保存活动元素 ID 以供以后使用,以便当您返回时,我可以再次赋予该视图焦点并可能自动提交?
编辑:
我大部分时间都在工作,这就是我所做的。
self.activeElement = [webView stringByEvaluatingJavaScriptFromString:@"function getTextField(){ var textField = document.activeElement.id; return textField; } getTextField();"];
这会将文本字段 id 保存到字符串变量中。然后当我的应用程序从相机视图中出来时。
NSString *javaScript = [NSString stringWithFormat:@"var textField = document.getElementById('%@'); textField.value = '%@';" , self.activeElement, barcodeValueFromCamera];
[webView stringByEvaluatingJavaScriptFromString:javaScript];
这就像预期的那样投入了价值......但是,如果我尝试这个。
[webView stringByEvaluatingJavaScriptFromString:[NSString stringWithFormat:@"document.getElementByID(%@).form.submit();", self.activeElement]];
它似乎没有提交价值。有任何想法吗?另外我刚刚在谷歌网站上测试过这个......