我希望用戶能夠從我的iPhone應用程序掃描條形碼到網絡表單。這樣我一直在用javascript實現類似的東西。保存UIWebView ActiveElement供以後使用
NSString *javaScript = [NSString stringWithFormat:@"var textField = document.activeElement;"
"textField.value = '%@';" , barcode];
[webView stringByEvaluatingJavaScriptFromString:javaScript];
但是,當我使用相機掃描儀,它必須加載一個新的視圖和web視圖失去焦點。有沒有辦法爲以後保存活動元素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]];
它似乎沒有提交價值。有任何想法嗎?此外,我剛剛在谷歌網站上進行了測試......
我明白你在說什麼,但你誤解了這個問題。我沒有試圖保存字符串,而是找到JavaScript的文本字段。 – Hackmodford
我打算推薦您找到的相同解決方案。我必須在C++/Qt上做類似的事情。不幸的是,我沒有足夠的積分來回答你的答案。 – wendelbsilva