1

PhoneGapを使用してiPhoneアプリを構築しています。ChildBrowserプラグインを使用しています。

アプリにユーザー名/パスのフォームがある場合、それらの情報をwww.mydomain.com/login.phpなどのURLに投稿して、ChildBrowserで開くことはできますか?

私にお知らせください。

ありがとう。

4

2 に答える 2

3

私は解決策を探していて、それを開発するのをやめました。これは、iPhone用のチャイルドブラウザの箱から出てくるものではありません。だから、ここで私がプラグインに追加したコード。参考までに、データは次の形式の文字列である必要があります:arg1 = value1&arg2 = value2&foo = bar

ChildbrowserViewController 次のメソッドを追加しました。

- (void)postURL:(NSString*)url data:(NSString*)data{
NSMutableURLRequest *request = [[NSMutableURLRequest alloc]initWithURL: [NSURL URLWithString:url]];
[request setHTTPMethod: @"POST"];
[request setHTTPBody: [data dataUsingEncoding: NSUTF8StringEncoding]];
[webView loadRequest: request];
webView.hidden = NO;}

ChildbrowserCommandshowWebPage メソッドに次のコードを追加しました。

NSString* method = [ options objectForKey:@"method"];
if ([method isEqualToString:@"POST"]){
    [childBrowser postURL:url data:[options objectForKey:@"data"]];
}else{
    [childBrowser loadURL:url];
}

HTH!ミルトン。

于 2012-05-25T14:47:02.010 に答える
3

確かにGETパラメータをに渡すことができますchildBrowser.showWebPage()

アプリでフォームの送信をインターセプトし、渡されたフィールド名と値を収集して(これがログインフォームであると想定し、ユーザー名とパスワードを指定します)、ChildBrowserで開いたURLにパラメーターとして渡すことができます。

childBrowser.showWebPage('https://www.mydomain.com/login.php?username='+username+'&password='+password)

これは、デモンストレーション用のかなり洗練されていないバージョンです。それを改善するのにそれほど時間はかかりません。

もちろん、キャッチはGET経由で送信されていることです。ログインフォームでPOSTが必要であり、それを変更できない場合は、問題が発生している可能性があります。

編集:

POSTが唯一のオプションである場合は、子ブラウザーを使用する代わりに、AJAXを使用してフォームに投稿する方がよいでしょう。

于 2012-02-20T01:08:14.580 に答える