我正在寫一個Xamarin的iOS應用程序,並有困難的整合Facebook SSO,但我不認爲我的問題必然是Xamarin特定的,只是缺乏對如何理解整合Facebook SSO而沒有Facebook iOS SDK的好處。集成一個Xamarin應用程序與Facebook的SSO與Facebook的iOS應用程序
我按照各種指南,也做了以下內容:
1)有一個Facebook應用程序設置: 一)iOS平臺加入包ID匹配我的應用程序的包ID b)單標誌啓用
2)設置我的info.plist如下:
raw text:
<key>CFBundleDisplayName</key>
<string>[company]</string>
<key>CFBundleIdentifier</key>
<string>com.[company].ios.app</string>
<key>CFBundleURLTypes</key>
<array>
<dict>
<key>CFBundleURLSchemes</key>
<array>
<string>fb123490xxx</string>
</array>
<key>CFBundleURLName</key>
<string>com.[company].ios.app</string>
</dict>
</array>
<key>FacebookAppID</key>
<string>123490xxx</string>
<key>FacebookDisplayName</key>
<string>[company] Staging</string>
3)已執行下面的代碼在我的應用:
FacebookLoginButton.TouchUpInside += (sender, e) =>
{
var urlWithAppProtocol = new NSUrl("fb123490xxx://");
UIApplication.SharedApplication.OpenUrl(urlWithAppProtocol);
};
我還沒有覆蓋AppDelegates方法(和的OpenURL HandleOpenUrl),但因爲據我可以看到那些處理傳入的重定向到我的應用程序;接下來我會開始工作。
要清楚,就是我希望看到的是FB iOS應用中對應的屏幕(從移動Safari瀏覽器)
但是,如果我重定向到:
「FB:// [ appid]「我被重定向到FB應用程序,但只是到新聞提要頁面(或者我上次使用FB應用程序時的最後一個屏幕)
」fb [appid]://「我什麼都沒發生,.OpenUrl()什麼都不做;
「fb:// profile/[appid]」作爲實驗,我得到以下內容(注意「應用程序不適用於您的手機」);這可能是因爲你應該在/ profile中使用PageID。
缺少什麼我在這裏?
我沒有關於單聲道的知識,但是調用URL'fb123490xxx:'只會打開你的應用程序。您應該在Facebook SDK或Account商店中調用某種方法來獲取所需的屏幕。 – rckoenes
「賬戶商店」是什麼意思?並調用Url「fbxxx」將打開Facebook應用程序的權利,而不是我的應用程序? –
沒有調用'fbxxxxx',其中xxxx將是您的來自Facebook的應用程序將打開您的應用程序而不是Facebook應用程序。帳戶存儲:https://developer.apple.com/library/ios/documentation/Accounts/Reference/ACAccountStoreClassRef/ACAccountStore。html – rckoenes