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你最后做了什么?