美文网首页
iOS 开发之应用内置Safari加载链接

iOS 开发之应用内置Safari加载链接

作者: 此笙吥涣 | 来源:发表于2023-10-16 20:58 被阅读0次

    开发过程中遇到一个特殊的需求,由于使用企业二次签名的ipa包只有使用苹果默认浏览器(既Safari)才会弹出下载弹框,在我们自己的应用中,不想从App外部跳转到safari浏览器,那么就要放弃平时用的WKWebView加载企业签名应用下载链接了,此时可在应用内使用SFSarfariViewController进行加载链接,这样就不会跳出应用并且会弹出下载弹框。直接上代码
    1、导入SafariServices框架

    import SafariServices
    

    2、在触发按钮或者Banner中加载

        override func touchesBegan(_ touches: Set<UITouch>, with event: UIEvent?) {
              showSafariViewController()
          }
        // MARK: Banner点击事件
        func showSafariViewController() {
            // URL
            let url = URL(string: "http://app.karang.cn/?deviceId=7E86073E-8266-4003-8668-E2092E172DB2&appKey=com.dk.MJFANGDAI&appMarket=_ios&version=1.2.0&groupId=1")
            // 创建SFSafariViewController
            let safariViewController = SFSafariViewController(url: url!)
            // 设置代理
            safariViewController.delegate = self
            
            // 显示
            self.present(safariViewController, animated: false) {
                var frame = safariViewController.view.frame
                frame.size = CGSize(width: frame.width, height: frame.height + KTabBarHeight)
    //            frame = CGRectMake(0, -KNaviBarHeight, KScreenWidth, kScreenHeight+KTabBarHeight+KNaviBarHeight)
                safariViewController.view.frame = frame
            }
        }
    

    3、遵守协议进行监听

    extension HTClassHomeViewController: SFSafariViewControllerDelegate {
        // MARK: 点击左上角的完成
        func safariViewControllerDidFinish(_ controller: SFSafariViewController) {
            print(#function)
        }
    
        // MARK: 加载完成
        func safariViewController(_ controller: SFSafariViewController, didCompleteInitialLoad didLoadSuccessfully: Bool) {
            print(#function)
        }
        
        // MARK: 点击右下角调用Safari浏览器打开
        func safariViewControllerWillOpenInBrowser(_ controller: SFSafariViewController) {
            print(#function)
        }
    }
    

    至此,已经实现了在应用内展示二次签名应用的下载弹框。

    相关文章

      网友评论

          本文标题:iOS 开发之应用内置Safari加载链接

          本文链接:https://www.haomeiwen.com/subject/jphfidtx.html