質問

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!ミルトン。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top