Схемы URL iOS Facebook не открывают страницу в приложении Facebook - PullRequest
0 голосов
/ 05 октября 2018

Мне нужно открыть страницу facebook в приложении facebook.

Это мой код

 let url : URL!
 if (UIApplication.shared.canOpenURL(URL(string:"fb://")!)) {
    //FIXME: Url is not working ✋
    let pageName = "google"
      // tried with fb://page?name=%@ not worked
    let urlString =  String.init(format: "fb://page?id=%@",pageName!) 
    url = URL.init(string: urlString)
 } else {
    url = URL.init(string: "https://www.facebook.com/google")
 }

if #available(iOS 10.0, *) {
    UIApplication.shared.open(url!, completionHandler: nil)
} else {
    UIApplication.shared.openURL(url!)
}

он отлично работает в браузере Safari, но не в приложении Facebook.

Я добавил схему URL в inof.plist

<key>LSApplicationQueriesSchemes</key>
    <array>
        <string>fb</string>
        <string>fbapi</string>
        <string>fb-messenger-api</string>
        <string>fbauth2</string>
        <string>fbshareextension</string>
    </array>

Может кто-нибудь помочь мне решить эту проблему?

Заранее спасибо !!!!

Ответы [ 2 ]

0 голосов
/ 05 октября 2018

И он открывается в браузере, когда вы звоните UIApplication.shared.openURL(:)?

Я не точно понимаю вашу проблему, но если я не ошибаюсь, вы должнывставьте идентификатор приложения Facebook (это первое, что появляется в вашем приложении в developers.facebook ) в типах ваших URL.

Это изображение должно прояснить, что яя пытаюсь сказать:

enter image description here

Не забудьте "fb" String до вашего идентификатора приложения .


РЕДАКТИРОВАТЬ: Теперь, когда я понял вашу проблему, я не могу быть уверен , что вы сможете решить эту проблему -как вы можете видеть все эти ответы -, они, кажется, больше не работают , так как схема URL менялась пару раз, и вы используетефактически последний «ответ / использованный» в указанном ответе.Я могу почти подтвердить, что не поддерживается способ сделать то, что вы пытаетесь из-за этого ответа в fb-sdk github .

0 голосов
/ 05 октября 2018

попробуйте этот код, убедитесь, что используете идентификатор Facebook со страницы, а не имя страницы

проверьте это Как найти идентификатор страницы

 let url : URL!
        if (UIApplication.shared.canOpenURL(URL(string:"fb://")!)) {
            //FIXME: Url is not working ✋
            let pageName = "104958162837"
            // tried with fb://page?name=%@ not worked
            let urlString =  String.init(format: "fb://profile/%@",pageName) 
            url = URL.init(string: urlString)
        } else {
            url = URL.init(string: "https://www.facebook.com/104958162837")
        }

        if #available(iOS 10.0, *) {
            UIApplication.shared.open(url!, completionHandler: nil)
        } else {
            UIApplication.shared.openURL(url!)
        }
...