0

これはおそらくクレイジーな質問ですが、iOS アプリで UIButton を使用しようとしています。それをクリックすると、非表示の UIWebView に読み込まれた Web ページのハイパーリンクがクリックされます。

リンクは、JavaScript 呼び出しによってトリガーすることもできます。UIButton から UIWebView へのリンクが可能かどうかはわかりません。

ありがとうアーロン

4

2 に答える 2

1

href クリックを処理する JavaScript 関数を直接呼び出して、UIButton クリック ハンドラーから UIWebView 内で JavaScript を呼び出すことができます。

スイッチに基づいてコードで実行時に ui Web ビューに html を追加するを参照してください。

于 2012-09-28T12:06:45.217 に答える
0

代わりに、送信ボタンのある 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;
    }
于 2012-09-28T11:56:30.617 に答える