これはおそらくクレイジーな質問ですが、iOS アプリで UIButton を使用しようとしています。それをクリックすると、非表示の UIWebView に読み込まれた Web ページのハイパーリンクがクリックされます。
リンクは、JavaScript 呼び出しによってトリガーすることもできます。UIButton から UIWebView へのリンクが可能かどうかはわかりません。
ありがとうアーロン
これはおそらくクレイジーな質問ですが、iOS アプリで UIButton を使用しようとしています。それをクリックすると、非表示の UIWebView に読み込まれた Web ページのハイパーリンクがクリックされます。
リンクは、JavaScript 呼び出しによってトリガーすることもできます。UIButton から UIWebView へのリンクが可能かどうかはわかりません。
ありがとうアーロン
href クリックを処理する JavaScript 関数を直接呼び出して、UIButton クリック ハンドラーから UIWebView 内で JavaScript を呼び出すことができます。
代わりに、送信ボタンのある HTML フォームを使用することをお勧めします。私はこれを行いましたが、はるかに簡単です。何かのようなもの:
- (NSString *)makeSubmitForm
{
NSMutableString *ms = [NSMutableString string];
[ms appendString:@"<p><form action=\"formentry\">"];
[ms appendString:@"<input style=\"submit\" type=\"submit\" value=\"Submit\" />"];
[ms appendString:@"<input type=\"hidden\" name=\"fieldtype\" value=\"submit\" />"];
[ms appendString:@"</form>"];
return ms;
}
UIWebViewDelegateでそれを探してください。以下のコードはそれを行い、存在する場合は他のフォームエントリもチェックします(テキストフィールド入力など)
- (BOOL)webView:(UIWebView *)webView shouldStartLoadWithRequest:(NSURLRequest *)request navigationType:(UIWebViewNavigationType)navigationType
{
NSString *surl = [[request URL] absoluteString];
NSRange ner = [surl rangeOfString:@"formentry?"];
if (ner.location != NSNotFound){
NSString *argstr = [surl substringFromIndex:ner.location+ner.length];
NSMutableDictionary *md = [NSMutableDictionary dictionary];
NSArray *args = [argstr componentsSeparatedByString:@"&"];
for (int i=0; i < args.count; i++){
NSString *keyval = [args objectAtIndex:i];
NSArray *pair = [keyval componentsSeparatedByString:@"="];
[md setObject:[pair objectAtIndex:1] forKey:[pair objectAtIndex:0]];
}
[MyDelegate tellItWhatever:md];
}
return NO;
}