Ios swift 3-相关函数不';我没接到电话
我现在在Ios swift 3-相关函数不';我没接到电话,ios,swift,xcode,swift3,Ios,Swift,Xcode,Swift3,我现在在Xcode 8上学习switf3,我被一个小应用程序卡住了,它基本上只是在webView元素中显示一个网页。我尝试实现的唯一附加功能是,外部URL作为共享应用程序(如Safari)打开 由于中有很多示例,我想我找到了使其工作所需的所有元素,但不知何故,检查url的func-webView没有被调用 以下是我的代码表单ViewController.swif: 导入UIKit 类ViewController:UIViewController、UIWebViewDelegate{ @ibvar
Xcode 8
上学习switf3
,我被一个小应用程序卡住了,它基本上只是在webView
元素中显示一个网页。我尝试实现的唯一附加功能是,外部URL作为共享应用程序(如Safari)打开
由于中有很多示例,我想我找到了使其工作所需的所有元素,但不知何故,检查url
的func-webView
没有被调用
以下是我的代码表单ViewController.swif
:
导入UIKit
类ViewController:UIViewController、UIWebViewDelegate{
@ibvar-webView:UIWebView!
重写func viewDidLoad(){
super.viewDidLoad()
self.webView.delegate=self;
让url=url(字符串:https://stackoverflow.com")
调试打印(url!)
loadRequest(url请求(url:url!))
}
// [...]
func webView(webView:UIWebView!,shouldStartLoadWithRequest:URLRequest!,navigationType:UIWebView navigationType)->Bool{
debugPrint(“已调用func webView”)
debugPrint(request.url!)
如果navigationType==UIWebViewNavigationType.linkClicked{
if(request.url!.host!=“stackoverflow.com”){
返回真值
}否则{
//UIApplication.sharedApplication().openURL(request.URL!)
UIApplication.shared.open(request.url!)
返回错误
}
}
返回真值
}
}
我的后勤错误在哪里?试试这个
编辑
func webView(_ webView: UIWebView, shouldStartLoadWith request: URLRequest, navigationType: UIWebViewNavigationType) -> Bool {
debugPrint("func myWebView has been called")
debugPrint(request.url!)
if navigationType == UIWebViewNavigationType.linkClicked {
if (request.url!.host! == "stackoverflow.com"){
return true
} else {
//UIApplication.sharedApplication().openURL(request.URL!)
UIApplication.shared.open(request.url!)
return false
}
}
return true
}
Swift 3中委托方法的签名错误:
func webView(_ webView: UIWebView, shouldStartLoadWith request: URLRequest, navigationType: UIWebViewNavigationType) -> Bool
此选项已设置,仅允许表单
http
链接等非安全内容。那不是我要找的!是的,就是这样!但是速度更快!是的,网络问题。顺便说一句,谢谢你的投票。快乐编码:)在加载请求之前,您是否尝试过设置delegate=self
。。。只是为了测试,我把它移了下来。我将在这里的问题中更正…另外注意,检查request.url!非常重要!。主持人!=nil
否则,应用程序在没有主机的情况下会遇到url请求问题,比如mailto
。为什么会投反对票?就是这样!非常感谢,对于初学者来说,Swift 3的语法变化太大了,这真让人困惑。。。因此,大多数代码示例不再适用。Swift 3中的委托方法从Objective-C桥接而来,与视图相关,在左括号后始终有下划线,参数类型通常为非可选或常规可选(?
)