如何在手机的浏览器中打开请求

时间:2019-12-14 11:21:20

标签: ios swift webview uiview

我的应用程序中的打开请求有问题。我的应用程序向网络视图发送了一个请求,我需要在手机上的浏览器中打开此请求。我无法在网络浏览器中打开或执行请求。 当我使用命令代码时只能使用URL的字符串格式。 我该如何请求?

我使用URL的命令代码字符串格式。我如何发出此请求?

import UIKit

class PaymentViewController: UIViewController, UIWebViewDelegate {

    var delegate: BackProtocol? = nil

    var firstCall = true
    var providerId: Int!
    var transactionId: String!

    @IBOutlet weak var webView: UIWebView!

    func configureView() {
        self.navigationItem.title = LocalizationSystem.sharedInstance.localizedStringForKey(key: "pay" , comment:"")

        // back button
        self.navigationItem.addCustomButton(style: .action, position: .left, customView: UIView())
        if LocalizationSystem.sharedInstance.getLanguage() == "fa" {
            self.navigationItem.addBackButtonEnglishLanguage(target: self, selector: #selector(onBackPressed))
        } else {
            self.navigationItem.addBackButton(target: self, selector: #selector(onBackPressed))
        }
        self.webView.delegate = self
    }

    override func viewDidLoad() {
        super.viewDidLoad()

        self.configureView()

        var request = URLRequest(url: URL(string: String(format: "%@%@",
                                                         Downloader.API_BASE_URL,
                                                         String(format: Downloader.API_PAYMENT_URL, transactionId,
                                                                providerId, Statics.CALLBACK_URL)))!)
        request.httpMethod = "GET"
        request.setValue(UserInfo.acessToken!, forHTTPHeaderField: "Authorization")

        self.webView.loadRequest(request)
        //        guard let url = URL(string: "http://www.google.com") else {
        //          return //be safe
        //        }
        //
        //        if #available(iOS 10.0, *) {
        //            UIApplication.shared.open(url, options: [:], completionHandler: nil)
        //        } else {
        //            UIApplication.shared.openURL(url)
        //        }
    }

    func webViewDidFinishLoad(_ webView: UIWebView) {
        if let requestedUrl = webView.request?.mainDocumentURL?.absoluteString {
            let parts = requestedUrl.components(separatedBy: "/")
            // return to previous page
            if parts[3] == "verify_payment" {
                DispatchQueue.main.asyncAfter(deadline: DispatchTime.now() + 2) { // 2 seconds later
                    self.onBackPressed()
                }
            }
        }
    }
}

0 个答案:

没有答案