Имя пользователя Swift Instagram API не отображается на ярлыке - PullRequest
1 голос
/ 28 июня 2019

Я просто хочу создать приложение для iOS с Instagram API, чтобы увидеть профиль пользователя.Я только что написал этот код в своем проекте Xcode, чтобы сделать приложение для iOS.

вот код: -

    @IBOutlet weak var webView: UIWebView!

    override func viewDidLoad() {
        super.viewDidLoad()
        webView.delegate = self
        signInRequest()
    }

    func signInRequest() {
        let getURL = String(format: "%@?client_id=%@&redirect_uri=%@&response_type=token&scope=%@&DEBUG=True", arguments: [API.INSTAGRAM_AUTHURL,API.INSTAGRAM_CLIENT_ID,API.INSTAGRAM_REDIRECT_URI,API.INSTAGRAM_SCOPE])
        let request = URLRequest.init(url: URL.init(string: getURL)!)
        webView.loadRequest(request)
    }

    func checkRequestForCallbackURL(request: URLRequest) -> Bool {

        let requestURLString = (request.url?.absoluteString)! as String
        if requestURLString.hasPrefix(API.INSTAGRAM_REDIRECT_URI) {
            let range: Range<String.Index> = requestURLString.range(of: "#access_token=")!
            handleAuth(authToken: requestURLString.substring(from: range.upperBound))
            return false
        }
        return true
    }
    func handleAuth(authToken: String) {
        let url = String(format: "https://api.instagram.com/v1/users/self/?access_token=%@", authToken)
        let request: NSMutableURLRequest = NSMutableURLRequest(url: URL(string: url)!)
        request.httpMethod = "GET"
        request.cachePolicy = NSURLRequest.CachePolicy.reloadIgnoringCacheData



        let session = URLSession(configuration: .default)

        session.dataTask(with: request as URLRequest) { (data, response, error) -> Void in
            if let data = data {
                let json = try? JSONSerialization.jsonObject(with: data, options: []) as? NSDictionary
                let strFullName = (json?.value(forKey: "data") as AnyObject).value(forKey: "full_name") as! String


                let secondVC: SecondViewController = UIStoryboard(name: "Main", bundle: nil).instantiateViewController(withIdentifier: "secondSeg") as! SecondViewController

                secondVC.text = strFullName

                self.present(secondVC
                    , animated: true, completion: nil)

            }
        }.resume()
    }

    func webView(_ webView: UIWebView, shouldStartLoadWith request: URLRequest, navigationType: UIWebView.NavigationType) -> Bool {
        return checkRequestForCallbackURL(request: request)
    }
}

мой вопрос, когда я запускаю свое приложение и хочу увидеть Instagramuser username Я не вижу на своем ярлыке.

Я не вижу пользователя (полное имя, имя пользователя, подписчики и т. д.)

вот второй код VC.

    var text: String = ""

    @IBOutlet weak var userNameLabel: UILabel!

    override func viewDidLoad() {
        super.viewDidLoad()
        view.backgroundColor = .white

        userNameLabel?.text = text
    }

1 Ответ

0 голосов
/ 28 июня 2019

Я считаю, что ваша функция viewdidload вызывается до обновления вашей текстовой переменной

Попробуйте заменить:

var text: String = ""

на:

var text: String = "" {
    didSet {
        userNameLabel?.text = text
    }
}
...