Я вращаюсь по кругу с этой проблемой - и похоже, что у Facebook есть несколько открытых билетов на эту тему, но я хотел посмотреть, есть ли у кого-то такая же проблема, как у меня, и найти временное или лучшее решение.
Я скачал "DemoApp" на Facebook и могу добавить свой appId
в его info.plist следующим образом: fb1234567890
(где 1234567890 - мой appId).Он может аутентифицировать пользователя путем многозадачности в Safari, ввода моих учетных данных, разрешения доступа к моему приложению, а затем перенаправления обратно в «DemoApp», когда я вошел в систему (и я могу запросить мою информацию в порядке).
ТЕПЕРЬ, я пытаюсь интегрировать функциональность DemoApp в мое существующее приложение.
Я могу получить доступ к экрану входа и ввести свои учетные данные.Это позволяет мне предоставить приложению доступ к моей личной информации - я нажимаю allow
, и Safari обрабатывает новый запрос, а затем возвращает сообщение об ошибке : Safari cannot open the request because the address is invalid
по URL-адресу: http://www.facebook.com/connect/uiserver.php
ОДНАКО, если у меня установлен DemoApp
на моем симуляторе и моем собственном приложении, он переключится НАЗАД на DemoApp после успешного входа в систему. Если я удалю DemoApp
и попытаюсь снова с моим приложением, я получу Safariошибка.
ЧТО МОЖНО СДЕЛАТЬ, ЧТОБЫ РЕШИТЬ ЭТО ?? Любая помощь будет отличной;Я тут бьюсь головой. :(
Мой info.plist
:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>CFBundleURLTypes</key>
<array>
<dict>
<key>CFBundleURLName</key>
<string></string>
<key>CFBundleURLSchemes</key>
<array>
<string>fb1234567890</string>
</array>
</dict>
</array>
<key>CFBundleDevelopmentRegion</key>
<string>English</string>
<key>CFBundleDisplayName</key>
<string>${PRODUCT_NAME}</string>
<key>CFBundleExecutable</key>
<string>${EXECUTABLE_NAME}</string>
<key>CFBundleIconFile</key>
<string></string>
<key>CFBundleIdentifier</key>
<string>com.yourcompany.${PRODUCT_NAME:rfc1034identifier}</string>
<key>CFBundleInfoDictionaryVersion</key>
<string>6.0</string>
<key>CFBundleName</key>
<string>${PRODUCT_NAME}</string>
<key>CFBundlePackageType</key>
<string>APPL</string>
<key>CFBundleSignature</key>
<string>????</string>
<key>CFBundleVersion</key>
<string>1.0</string>
<key>LSRequiresIPhoneOS</key>
<true/>
<key>NSMainNibFile</key>
<string>MainWindow</string>
</dict>
</plist>