CampaignWebview.swift
2.91 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
//
//  CampaignWebview.swift
//  WarplySDKFrameworkIOS
//
//  Created by Manos Chorianopoulos on 20/4/22.
//
#if canImport(SwiftUI)
import SwiftUI
import Combine
import Foundation
import UIKit
extension CampaignWebview {
    struct headerView: View {
        var goBack: () -> ()
        
        var uiscreen = UIScreen.main.bounds
        
        var body: some View {
            HStack(alignment: .center) {
                Button {
                    // Button Action
                    print("Back Button tapped!")
                    goBack()
                } label: {
                    Image("ic_back", bundle: Bundle(for: MyEmptyClass.self))
                        .resizable()
                        .aspectRatio(contentMode: .fit)
                        .frame(width: self.uiscreen.height * 0.025, height: self.uiscreen.height * 0.02)
                }
               
                Text("")
                    .fontWeight(.medium)
                    .font(.system(size: 16))
                    .foregroundColor(Color(red: 0.20784313725490197, green: 0.3176470588235294, blue: 0.40784313725490196))
                    .multilineTextAlignment(.center)
                    .frame(maxWidth: .infinity)
                    .padding(.horizontal)
               
            }
            .frame(maxWidth: .infinity)
            .padding(.horizontal)
            .padding(.vertical, 10)
        }
    }
    
    struct WebView: UIViewRepresentable {
     
        var url: String
     
        func makeUIView(context: Context) -> WKWebView {
            return WKWebView()
        }
     
        func updateUIView(_ webView: WKWebView, context: Context) {
            let request = URLRequest(url: URL(string: url)!)
            webView.load(request)
        }
    }
 
}
@available(iOS 13.0.0, *)
struct CampaignWebview: View {
    var parentView: UIView
    var campaign: String
    
    var uiscreen = UIScreen.main.bounds
    
    func goBack(){
        for subview in parentView.subviews {
            if(subview.tag == 6) {
                subview.removeFromSuperview()
            }
        }
    }
    
    var body: some View {
        VStack {
            headerView(goBack: goBack)
            
            VStack {
                WebView(url: campaign)
             }
            .background(
                LinearGradient(gradient: Gradient(colors: [Color(red: 0.06, green: 0.67, blue: 0.84), Color(red: 0.47, green: 0.75, blue: 0.43)]), startPoint: .top, endPoint: .bottom)
            )
            .cornerRadius(30, corners: [.topLeft])
            .frame(width:self.uiscreen.width)
            .frame(maxHeight: .infinity)
        }
        .edgesIgnoringSafeArea([.bottom])
        .frame(width:self.uiscreen.width)
        .frame(maxHeight: .infinity)
    }
}
#endif
//@available(iOS 13.0.0, *)
//struct CampaignWebview_Previews: PreviewProvider {
//    static var previews: some View {
//
//        CampaignWebview()
//
//    }
//}