4

私のアプリでは、ユーザーが Facebook でログインできる UIWebView に Web ページをロードする必要があります。問題は、ユーザーがログインをクリックすると、空白のページが表示されることです。

最初のページに戻ってログインすることはできますか?

Web ページは Safari で完全に機能し、新しいウィンドウを開き、ログイン後に閉じて元の場所に戻ります。

編集: 間違った URL が UIWebView に提供されました

4

3 に答える 3

3

facebook SDK for iOS のサンプルは、あなたが望む方法でログインすると思います。リンクを参照してください: facebook-iOS-SDK-sample: https://github.com/facebook/facebook-ios-sdk/tree/master/sample/Hackbook

特にhttps://github.com/facebook/facebook-ios-sdk/blob/master/sample/Hackbook/Hackbook/RootViewController.mのこの部分

/**
 * Show the authorization dialog.
 */
- (void)login {
    HackbookAppDelegate *delegate = (HackbookAppDelegate *)[[UIApplication sharedApplication] delegate];
    if (![[delegate facebook] isSessionValid]) {
        [[delegate facebook] authorize:permissions];
    } else {
        [self showLoggedIn];
    }
}

ログインボタンをクリックすると、ログインダイアログが開き、許可を求められます。これは次のようになります: https://developers.facebook.com/docs/mobile/screenshots/ios/#iphone-native

「facebook 関連」アプリを実装する最善の方法は、Hacbook から始めることだと思います。それは本当に素敵で詳細なサンプルです。

于 2012-07-24T01:50:55.967 に答える
1

Facebook のログイン ポップアップが閉じられた後に特定の URL をリロードして、空白のページでスタックしないようにする場合は、このコードを使用できます。

最初に UIWebViewDelegate をインクルードし、デリゲートをコードのどこかに設定します。

[yourwebView setDelegate:self];

次に、shouldStartLoadWithRequest メソッドを使用して、Facebook がポップアップを閉じるために使用する close_popup.php のリクエスト URL を確認します。

- (BOOL)webView:(UIWebView *)webView shouldStartLoadWithRequest:(NSURLRequest *)request navigationType:(UIWebViewNavigationType)navigationType
{    
    NSString *urlString = [NSString stringWithFormat:@"%@", request];
    if ([urlString rangeOfString:@"close_popup.php"].location == NSNotFound) {
        //The close_pop.php is not found. (Do nothing)
    } else {
        //Facebook closed the popup so we should load the page we now want the user to see. 
        NSURL*url=[NSURL URLWithString:@"http://www.example.ca/thepageyouwanttoreload.html"];
        NSURLRequest*request=[NSURLRequest requestWithURL:url];
        [webView loadRequest:request];
    }
    return YES;
}
于 2013-02-10T23:00:54.563 に答える
0

SSLの問題?Joanne によると、Facebook SDK を使用すると、Facebook ネイティブ アプリがインストールされている場合は、それを介してログインするなど、多くの追加機能を無料で利用できます。

于 2012-07-24T02:40:10.233 に答える