Ios 当使用Swift 3.0在文本框中键入网址时,如何显示web url内容的预览?

Ios 当使用Swift 3.0在文本框中键入网址时,如何显示web url内容的预览?,ios,validation,social-networking,Ios,Validation,Social Networking,场景: class CommentsViewController: UIViewController { @IBOutlet weak var comments: UITextField! @IBOutlet weak var preview: UIWebView! @IBOutlet weak var btnShare: UIButton! override func viewDidLoad() { super.viewDidLoad()

场景:

class CommentsViewController: UIViewController {

    @IBOutlet weak var comments: UITextField!
    @IBOutlet weak var preview: UIWebView!
    @IBOutlet weak var btnShare: UIButton!

    override func viewDidLoad() {
        super.viewDidLoad()
        preview.isHidden = true
        btnShare.isEnabled = false
    }

    override func didReceiveMemoryWarning() {
        super.didReceiveMemoryWarning()
    }


    @IBAction func valueModified(_ sender: Any) {
        //Load web preview only after Check for Valid Web URL
        if  verifyUrl(urlString: comments.text) == true {
            preview.isHidden = false
            preview.loadRequest(URLRequest(url: URL(string: comments.text!)!))
            btnShare.isEnabled = true

        }
    }

    //Check for Valid Web URL
    func verifyUrl (urlString: String?) -> Bool {
        //Check for nil
        if let urlString = urlString {
            // create NSURL instance
            if let url = NSURL(string: urlString) {
                // check if your application can open the NSURL instance
                return UIApplication.shared.canOpenURL(url as URL)
            }
        }
        return false
    }

}
创建社交网络应用程序类型应用程序时,当用户在文本区域键入网址或有效url时,我的应用程序应识别有效url,然后我必须执行以下任务

1) 如果它是有效的web url,则会在预览部分自动显示web内容的预览

2) 在预览完全加载之前不应启用“共享”按钮,否则可能仅发布URL而不是web内容

我试过什么?

创建了一个文本视图和一个预览WebUI视图,我使用以下代码来标识有效的URL,如果URL有效,那么我将显示web视图并加载web页面

对我尝试的内容进行编码:

class CommentsViewController: UIViewController {

    @IBOutlet weak var comments: UITextField!
    @IBOutlet weak var preview: UIWebView!
    @IBOutlet weak var btnShare: UIButton!

    override func viewDidLoad() {
        super.viewDidLoad()
        preview.isHidden = true
        btnShare.isEnabled = false
    }

    override func didReceiveMemoryWarning() {
        super.didReceiveMemoryWarning()
    }


    @IBAction func valueModified(_ sender: Any) {
        //Load web preview only after Check for Valid Web URL
        if  verifyUrl(urlString: comments.text) == true {
            preview.isHidden = false
            preview.loadRequest(URLRequest(url: URL(string: comments.text!)!))
            btnShare.isEnabled = true

        }
    }

    //Check for Valid Web URL
    func verifyUrl (urlString: String?) -> Bool {
        //Check for nil
        if let urlString = urlString {
            // create NSURL instance
            if let url = NSURL(string: urlString) {
                // check if your application can open the NSURL instance
                return UIApplication.shared.canOpenURL(url as URL)
            }
        }
        return false
    }

}
我到底需要什么?

我不想加载网页,我必须加载网页的预览。 共享按钮应隐藏,直到预览完全加载

我的代码输出的屏幕截图:

class CommentsViewController: UIViewController {

    @IBOutlet weak var comments: UITextField!
    @IBOutlet weak var preview: UIWebView!
    @IBOutlet weak var btnShare: UIButton!

    override func viewDidLoad() {
        super.viewDidLoad()
        preview.isHidden = true
        btnShare.isEnabled = false
    }

    override func didReceiveMemoryWarning() {
        super.didReceiveMemoryWarning()
    }


    @IBAction func valueModified(_ sender: Any) {
        //Load web preview only after Check for Valid Web URL
        if  verifyUrl(urlString: comments.text) == true {
            preview.isHidden = false
            preview.loadRequest(URLRequest(url: URL(string: comments.text!)!))
            btnShare.isEnabled = true

        }
    }

    //Check for Valid Web URL
    func verifyUrl (urlString: String?) -> Bool {
        //Check for nil
        if let urlString = urlString {
            // create NSURL instance
            if let url = NSURL(string: urlString) {
                // check if your application can open the NSURL instance
                return UIApplication.shared.canOpenURL(url as URL)
            }
        }
        return false
    }

}

我期待的内容的屏幕截图:

class CommentsViewController: UIViewController {

    @IBOutlet weak var comments: UITextField!
    @IBOutlet weak var preview: UIWebView!
    @IBOutlet weak var btnShare: UIButton!

    override func viewDidLoad() {
        super.viewDidLoad()
        preview.isHidden = true
        btnShare.isEnabled = false
    }

    override func didReceiveMemoryWarning() {
        super.didReceiveMemoryWarning()
    }


    @IBAction func valueModified(_ sender: Any) {
        //Load web preview only after Check for Valid Web URL
        if  verifyUrl(urlString: comments.text) == true {
            preview.isHidden = false
            preview.loadRequest(URLRequest(url: URL(string: comments.text!)!))
            btnShare.isEnabled = true

        }
    }

    //Check for Valid Web URL
    func verifyUrl (urlString: String?) -> Bool {
        //Check for nil
        if let urlString = urlString {
            // create NSURL instance
            if let url = NSURL(string: urlString) {
                // check if your application can open the NSURL instance
                return UIApplication.shared.canOpenURL(url as URL)
            }
        }
        return false
    }

}

您可能希望从网页打开图元标记中提取预览视图的数据。我实际上希望显示URL的预览,例如,当您共享You tube URL时,预览中将显示缩略图。当你粘贴任何网站时,网站中的徽标或某些图像将被加载并在预览中显示。我理解这一点。要在预览中显示的缩略图url、标题、说明等都在页面的“打开图形”标记中。@dan感谢您的更新,总结一下,我必须使用“打开图形”标记控件在我的移动应用程序中实现此功能。我是否需要添加UIKIT或其现有功能,我是IOS开发新手,不确定是否需要添加。许多网页没有图像的开放图形元标记(如Amazon)。这是一个像这样的网页预览会很有用@IpsitaSethi你最后做了什么?