Manos Chorianopoulos

add CampaignWebview

...@@ -7,6 +7,8 @@ ...@@ -7,6 +7,8 @@
7 objects = { 7 objects = {
8 8
9 /* Begin PBXBuildFile section */ 9 /* Begin PBXBuildFile section */
10 + 1E735FF2281067320050A298 /* CampaignWebview.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1E735FF1281067320050A298 /* CampaignWebview.swift */; };
11 + 1E735FF42810681E0050A298 /* CampaignWebviewInterface.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1E735FF32810681E0050A298 /* CampaignWebviewInterface.swift */; };
10 1EBEB02D280D69D800BF802C /* GiftsView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1EBEB02C280D69D800BF802C /* GiftsView.swift */; }; 12 1EBEB02D280D69D800BF802C /* GiftsView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1EBEB02C280D69D800BF802C /* GiftsView.swift */; };
11 1EBEB02F280D6AA500BF802C /* GiftsViewInterface.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1EBEB02E280D6AA500BF802C /* GiftsViewInterface.swift */; }; 13 1EBEB02F280D6AA500BF802C /* GiftsViewInterface.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1EBEB02E280D6AA500BF802C /* GiftsViewInterface.swift */; };
12 260C6A1AFF7560C32E212F20 /* Pods_WarplySDKFrameworkIOS.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1353B8C484CC0649CAC2EB74 /* Pods_WarplySDKFrameworkIOS.framework */; }; 14 260C6A1AFF7560C32E212F20 /* Pods_WarplySDKFrameworkIOS.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1353B8C484CC0649CAC2EB74 /* Pods_WarplySDKFrameworkIOS.framework */; };
...@@ -134,6 +136,8 @@ ...@@ -134,6 +136,8 @@
134 136
135 /* Begin PBXFileReference section */ 137 /* Begin PBXFileReference section */
136 1353B8C484CC0649CAC2EB74 /* Pods_WarplySDKFrameworkIOS.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_WarplySDKFrameworkIOS.framework; sourceTree = BUILT_PRODUCTS_DIR; }; 138 1353B8C484CC0649CAC2EB74 /* Pods_WarplySDKFrameworkIOS.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_WarplySDKFrameworkIOS.framework; sourceTree = BUILT_PRODUCTS_DIR; };
139 + 1E735FF1281067320050A298 /* CampaignWebview.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CampaignWebview.swift; sourceTree = "<group>"; };
140 + 1E735FF32810681E0050A298 /* CampaignWebviewInterface.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CampaignWebviewInterface.swift; sourceTree = "<group>"; };
137 1EBEB02C280D69D800BF802C /* GiftsView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = GiftsView.swift; sourceTree = "<group>"; }; 141 1EBEB02C280D69D800BF802C /* GiftsView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = GiftsView.swift; sourceTree = "<group>"; };
138 1EBEB02E280D6AA500BF802C /* GiftsViewInterface.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = GiftsViewInterface.swift; sourceTree = "<group>"; }; 142 1EBEB02E280D6AA500BF802C /* GiftsViewInterface.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = GiftsViewInterface.swift; sourceTree = "<group>"; };
139 B9413513157AD76ECE896B81 /* Pods-WarplySDKFrameworkIOS.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-WarplySDKFrameworkIOS.release.xcconfig"; path = "Target Support Files/Pods-WarplySDKFrameworkIOS/Pods-WarplySDKFrameworkIOS.release.xcconfig"; sourceTree = "<group>"; }; 143 B9413513157AD76ECE896B81 /* Pods-WarplySDKFrameworkIOS.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-WarplySDKFrameworkIOS.release.xcconfig"; path = "Target Support Files/Pods-WarplySDKFrameworkIOS/Pods-WarplySDKFrameworkIOS.release.xcconfig"; sourceTree = "<group>"; };
...@@ -323,6 +327,8 @@ ...@@ -323,6 +327,8 @@
323 E639EFA0280810E300B9DD94 /* CouponsView.swift */, 327 E639EFA0280810E300B9DD94 /* CouponsView.swift */,
324 E639EFA1280810E300B9DD94 /* CouponsViewInterface.swift */, 328 E639EFA1280810E300B9DD94 /* CouponsViewInterface.swift */,
325 1EBEB02C280D69D800BF802C /* GiftsView.swift */, 329 1EBEB02C280D69D800BF802C /* GiftsView.swift */,
330 + 1E735FF1281067320050A298 /* CampaignWebview.swift */,
331 + 1E735FF32810681E0050A298 /* CampaignWebviewInterface.swift */,
326 1EBEB02E280D6AA500BF802C /* GiftsViewInterface.swift */, 332 1EBEB02E280D6AA500BF802C /* GiftsViewInterface.swift */,
327 E6D8DF5E27A9429E0006A3A9 /* MyApi.h */, 333 E6D8DF5E27A9429E0006A3A9 /* MyApi.h */,
328 E6D8DF5C27A9429E0006A3A9 /* MyApi.m */, 334 E6D8DF5C27A9429E0006A3A9 /* MyApi.m */,
...@@ -730,10 +736,12 @@ ...@@ -730,10 +736,12 @@
730 E6D8DF5727A942920006A3A9 /* FMResultSet.m in Sources */, 736 E6D8DF5727A942920006A3A9 /* FMResultSet.m in Sources */,
731 E6D8DF3A27A942920006A3A9 /* UIButton+AFNetworking.m in Sources */, 737 E6D8DF3A27A942920006A3A9 /* UIButton+AFNetworking.m in Sources */,
732 E6D8DF0627A942920006A3A9 /* WLBeacon.m in Sources */, 738 E6D8DF0627A942920006A3A9 /* WLBeacon.m in Sources */,
739 + 1E735FF2281067320050A298 /* CampaignWebview.swift in Sources */,
733 E6D8DF2927A942920006A3A9 /* NSData+SSToolkitAdditions.m in Sources */, 740 E6D8DF2927A942920006A3A9 /* NSData+SSToolkitAdditions.m in Sources */,
734 1EBEB02D280D69D800BF802C /* GiftsView.swift in Sources */, 741 1EBEB02D280D69D800BF802C /* GiftsView.swift in Sources */,
735 E6D8DEFC27A942920006A3A9 /* WLCustomNativeAdTableViewCell.m in Sources */, 742 E6D8DEFC27A942920006A3A9 /* WLCustomNativeAdTableViewCell.m in Sources */,
736 E6EA2F702806E8C200EC4CF5 /* Coupons.swift in Sources */, 743 E6EA2F702806E8C200EC4CF5 /* Coupons.swift in Sources */,
744 + 1E735FF42810681E0050A298 /* CampaignWebviewInterface.swift in Sources */,
737 E639EFA3280810E300B9DD94 /* CouponsViewInterface.swift in Sources */, 745 E639EFA3280810E300B9DD94 /* CouponsViewInterface.swift in Sources */,
738 1EBEB02F280D6AA500BF802C /* GiftsViewInterface.swift in Sources */, 746 1EBEB02F280D6AA500BF802C /* GiftsViewInterface.swift in Sources */,
739 E6D8DF4A27A942920006A3A9 /* AFNetworkReachabilityManager.m in Sources */, 747 E6D8DF4A27A942920006A3A9 /* AFNetworkReachabilityManager.m in Sources */,
......
1 +//
2 +// CampaignWebview.swift
3 +// WarplySDKFrameworkIOS
4 +//
5 +// Created by Manos Chorianopoulos on 20/4/22.
6 +//
7 +
8 +
9 +#if canImport(SwiftUI)
10 +import SwiftUI
11 +import Combine
12 +import Foundation
13 +import UIKit
14 +
15 +
16 +extension CampaignWebview {
17 + struct headerView: View {
18 + var goBack: () -> ()
19 +
20 + var uiscreen = UIScreen.main.bounds
21 +
22 + var body: some View {
23 + HStack(alignment: .center) {
24 + Button {
25 + // Button Action
26 + print("Back Button tapped!")
27 + goBack()
28 + } label: {
29 + Image("ic_back")
30 + .resizable()
31 + .aspectRatio(contentMode: .fit)
32 + .frame(width: self.uiscreen.height * 0.025, height: self.uiscreen.height * 0.02)
33 + }
34 +
35 + Text("")
36 + .fontWeight(.medium)
37 + .font(.system(size: 16))
38 + .foregroundColor(Color(red: 0.20784313725490197, green: 0.3176470588235294, blue: 0.40784313725490196))
39 + .multilineTextAlignment(.center)
40 + .frame(maxWidth: .infinity)
41 + .padding(.horizontal)
42 +
43 + }
44 + .frame(maxWidth: .infinity)
45 + .padding(.horizontal)
46 + .padding(.vertical, 10)
47 + }
48 + }
49 +
50 + struct WebView: UIViewRepresentable {
51 +
52 + var url: String
53 +
54 + func makeUIView(context: Context) -> WKWebView {
55 + return WKWebView()
56 + }
57 +
58 + func updateUIView(_ webView: WKWebView, context: Context) {
59 + let request = URLRequest(url: URL(string: url)!)
60 + webView.load(request)
61 + }
62 + }
63 +
64 +}
65 +
66 +@available(iOS 13.0.0, *)
67 +struct CampaignWebview: View {
68 + var parentView: UIView
69 + var campaign: String
70 +
71 + var uiscreen = UIScreen.main.bounds
72 +
73 + func goBack(){
74 + for subview in parentView.subviews {
75 + if(subview.tag == 6) {
76 + subview.removeFromSuperview()
77 + }
78 + }
79 + }
80 +
81 + var body: some View {
82 + VStack {
83 + headerView(goBack: goBack)
84 +
85 + VStack {
86 + WebView(url: campaign)
87 + }
88 + .background(
89 + 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)
90 + )
91 + .cornerRadius(30, corners: [.topLeft])
92 + .frame(width:self.uiscreen.width)
93 + .frame(maxHeight: .infinity)
94 + }
95 + .edgesIgnoringSafeArea([.bottom])
96 + .frame(width:self.uiscreen.width)
97 + .frame(maxHeight: .infinity)
98 + }
99 +}
100 +#endif
101 +
102 +//@available(iOS 13.0.0, *)
103 +//struct CampaignWebview_Previews: PreviewProvider {
104 +// static var previews: some View {
105 +//
106 +// CampaignWebview()
107 +//
108 +// }
109 +//}
1 +//
2 +// CampaignWebviewInterface.swift
3 +// WarplySDKFrameworkIOS
4 +//
5 +// Created by Manos Chorianopoulos on 20/4/22.
6 +//
7 +
8 +import Foundation
9 +import SwiftUI
10 +
11 +@available(iOS 13.0.0, *)
12 +@objc public class CampaignViewInterface : NSObject {
13 +
14 + @objc(campaignViewController::) static public func campaignViewController(parentView: UIView?, campaign: String?) -> UIViewController {
15 + return UIHostingController(rootView: CampaignWebview(parentView: parentView!, campaign: campaign ?? ""))
16 + }
17 +
18 +}
...@@ -17,6 +17,7 @@ ...@@ -17,6 +17,7 @@
17 - (void) setLang:(NSString*) lang; 17 - (void) setLang:(NSString*) lang;
18 - (UIViewController *) openCoupons:(UIView*) parentView; 18 - (UIViewController *) openCoupons:(UIView*) parentView;
19 - (UIViewController *) openGifts:(UIView*) parentView; 19 - (UIViewController *) openGifts:(UIView*) parentView;
20 +- (UIViewController *) openCampaign:(UIView*) parentView campaign:(NSString*) campaign;
20 - (void) applicationDidEnterBackground:(UIApplication *)application; 21 - (void) applicationDidEnterBackground:(UIApplication *)application;
21 - (void) applicationWillEnterForeground:(UIApplication *)application; 22 - (void) applicationWillEnterForeground:(UIApplication *)application;
22 - (void) applicationDidBecomeActive:(UIApplication *)application; 23 - (void) applicationDidBecomeActive:(UIApplication *)application;
......
...@@ -58,6 +58,10 @@ NSString *LANG; ...@@ -58,6 +58,10 @@ NSString *LANG;
58 return giftsViewController; 58 return giftsViewController;
59 } 59 }
60 60
61 +- (UIViewController *) openCampaign:(UIView*) parentView campaign:(NSString*) campaign; {
62 + UIViewController *campaignViewController = [CampaignViewInterface campaignViewController:parentView:campaign];
63 + return campaignViewController;
64 +}
61 65
62 /////////////////////////////////////////////////////////////////////////////////////////////////// 66 ///////////////////////////////////////////////////////////////////////////////////////////////////
63 - (void)applicationDidEnterBackground:(UIApplication *)application 67 - (void)applicationDidEnterBackground:(UIApplication *)application
......