如何从Webview打开Safari View Controller(Swift)

初学者

我有一个当前正在使用Web视图的应用程序,当在Web视图中单击某些链接时,它将在Safari中打开这些链接。我现在想实现Safari View Controller(SVC),而不是将其启动到Safari应用程序。我已经进行了研究,并查看了有关SVC的示例;但是,我所看到的只是那些通过单击按钮即可打开SVC的工具。有人对我有建议或尝试的建议吗?

这是我的一些代码:

func webView(webView: UIWebView, shouldStartLoadWithRequest request: NSURLRequest, navigationType: UIWebViewNavigationType) -> Bool {
    if navigationType == UIWebViewNavigationType.LinkClicked {
        let host = request.URL!.host!;
        if (host != "www.example.com"){
            return true
        } else {
            UIApplication.sharedApplication().openURL(request.URL!)
            return false
        }
    return true

}

func showLinksClicked() {

    let safariVC = SFSafariViewController(URL: NSURL(string: "www.example.com")!)
    self.presentViewController(safariVC, animated: true, completion: nil)
    safariVC.delegate = self    }

func safariViewControllerDidFinish(controller: SFSafariViewController) {
    controller.dismissViewControllerAnimated(true, completion: nil)
}
布密特·梅塔(Bhumit Mehta)

如果我理解正确,那么您正在Webview上加载一个页面,该页面现在具有某些链接,当用户单击链接时,您想在SVC中打开这些页面。您可以使用以下委托方法在webview中检测链接单击,然后从那里打开SVC。

编辑

基于已编辑的问题,我可以看到您没有调用showLinksClicked函数,您可以调用此函数,因为我在以下代码中进行了更新,它应该可以工作。

func webView(webView: UIWebView, shouldStartLoadWithRequest request: NSURLRequest, navigationType: UIWebViewNavigationType) -> Bool {
    if navigationType == UIWebViewNavigationType.LinkClicked {
       self.showLinksClicked()
       return false

    }
    return true;
}


func showLinksClicked() {

    let safariVC = SFSafariViewController(url: URL(string: "www.google.com")!)
    present(safariVC, animated: true, completion: nil)
    safariVC.delegate = self
}

func safariViewControllerDidFinish(controller: SFSafariViewController) {
    controller.dismissViewControllerAnimated(true, completion: nil)
}

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

Swift:App Delegate应该如何获得对View Controller的引用?

来自分类Dev

如何在Swift中执行View Controller回调

来自分类Dev

如何在Swift中弹出特定的View Controller

来自分类Dev

iOS:如何打开View Controller设置?

来自分类Dev

目前的Popover View Controller Swift

来自分类Dev

从目标View Controller推送新的View Controller(swift)

来自分类Dev

如何在Swift的两个子View Controller之间切换?

来自分类Dev

如何使用Swift语言弹出VC以跳到前两个View Controller?

来自分类Dev

如何创建扩展文件并在iOS Swift 3的View Controller中调用它?

来自分类Dev

如何从Today小部件中打开特定的View Controller?

来自分类Dev

如何在WatchOS 2和Swift中将变量从一个View Controller传递到另一个View Controller

来自分类Dev

NavigationBar未显示(View Controller):Swift

来自分类Dev

在React Native中实现Safari View Controller

来自分类Dev

如何从底部绘制View Controller

来自分类Dev

打开SWRevealController菜单后如何使View不可见-Swift

来自分类Dev

如何通过动画UIView将UIImage设置为SWIFT中的另一个View Controller

来自分类Dev

Swift /如何使用Root View Controller /页面视图控制器隐藏NavigationBar。屏幕上方的小缝隙

来自分类Dev

从另一个View Controller Swift 2.0更改View Controller图像

来自分类Dev

如何隐藏特定View Controller的导航栏?

来自分类Dev

如何从View Controller选择到TableViewCell

来自分类Dev

如何制作Ask View Controller iOS

来自分类Dev

如何使用CGAfflineTransformIdentity进行View Controller转换

来自分类Dev

如何正确使用Modal View Controller?

来自分类Dev

在Activity View Controller中共享屏幕截图-Swift

来自分类Dev

Swift-从容器中的Table View Controller展开

来自分类Dev

来自完成处理程序的Swift Show View Controller

来自分类Dev

在Swift中以编程方式设置Root View Controller

来自分类Dev

使用Swift在View Controller上未显示ProgressView

来自分类Dev

Swift View Controller滑动两次问题

Related 相关文章

  1. 1

    Swift:App Delegate应该如何获得对View Controller的引用?

  2. 2

    如何在Swift中执行View Controller回调

  3. 3

    如何在Swift中弹出特定的View Controller

  4. 4

    iOS:如何打开View Controller设置?

  5. 5

    目前的Popover View Controller Swift

  6. 6

    从目标View Controller推送新的View Controller(swift)

  7. 7

    如何在Swift的两个子View Controller之间切换?

  8. 8

    如何使用Swift语言弹出VC以跳到前两个View Controller?

  9. 9

    如何创建扩展文件并在iOS Swift 3的View Controller中调用它?

  10. 10

    如何从Today小部件中打开特定的View Controller?

  11. 11

    如何在WatchOS 2和Swift中将变量从一个View Controller传递到另一个View Controller

  12. 12

    NavigationBar未显示(View Controller):Swift

  13. 13

    在React Native中实现Safari View Controller

  14. 14

    如何从底部绘制View Controller

  15. 15

    打开SWRevealController菜单后如何使View不可见-Swift

  16. 16

    如何通过动画UIView将UIImage设置为SWIFT中的另一个View Controller

  17. 17

    Swift /如何使用Root View Controller /页面视图控制器隐藏NavigationBar。屏幕上方的小缝隙

  18. 18

    从另一个View Controller Swift 2.0更改View Controller图像

  19. 19

    如何隐藏特定View Controller的导航栏?

  20. 20

    如何从View Controller选择到TableViewCell

  21. 21

    如何制作Ask View Controller iOS

  22. 22

    如何使用CGAfflineTransformIdentity进行View Controller转换

  23. 23

    如何正确使用Modal View Controller?

  24. 24

    在Activity View Controller中共享屏幕截图-Swift

  25. 25

    Swift-从容器中的Table View Controller展开

  26. 26

    来自完成处理程序的Swift Show View Controller

  27. 27

    在Swift中以编程方式设置Root View Controller

  28. 28

    使用Swift在View Controller上未显示ProgressView

  29. 29

    Swift View Controller滑动两次问题

热门标签

归档