PhoneGap/Childbrowser-アプリフォームをChildbrowserに投稿します
-
26-10-2019 - |
質問
PhoneGapを使用してiPhoneアプリを構築しています。 Childbrowserプラグインを使用しています。
ユーザー名/パスを備えたアプリにフォームがある場合、とにかくこれらの情報をwww.mydomain.com/login.phpのようなURLに投稿して、子育てで開くことができますか?
私にお知らせください。
ありがとう。
解決
確かに取得パラメーターを渡すことができます childBrowser.showWebPage()
.
アプリ内のフォームの送信を傍受して、渡されたフィールド名と値を収集し(これがログインフォームであると仮定するので、ユーザー名とパスワードを使用してください)、パラメーターとしてパラメーターとしてパラメーターとして渡すことができます。
childBrowser.showWebPage('https://www.mydomain.com/login.php?username='+username+'&password='+password)
これは、デモンストレーションの目的のためにかなり洗練されていないバージョンです。それを改善するのにそれほど時間はかかりません。
もちろん、キャッチはGetを介して送信されていることです。ログインフォームが投稿を期待していて、それを変更できない場合は、問題が発生する可能性があります。
編集:
投稿が唯一のオプションである場合、おそらくAjaxを使用して子ブラウザを使用する代わりにフォームに投稿する方が良いでしょう。
他のヒント
私は解決策を探していて、それを開発しました。これは、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!ミルトン。