Skip to content

Commit af12af6

Browse files
committed
Add CustomTouchEndEventCallback sample
1 parent 91e1f97 commit af12af6

File tree

2 files changed

+177
-0
lines changed

2 files changed

+177
-0
lines changed

AAInfographicsDemo.xcodeproj/project.pbxproj

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -39,6 +39,7 @@
3939
84B68246266DB09100957FC5 /* AAChartSymbolConstant.swift in Sources */ = {isa = PBXBuildFile; fileRef = 84B68245266DB09100957FC5 /* AAChartSymbolConstant.swift */; };
4040
84DEA0D42845ADEB00D0206F /* CustomMouseOutEventCallback.swift in Sources */ = {isa = PBXBuildFile; fileRef = 84DEA0D32845ADEB00D0206F /* CustomMouseOutEventCallback.swift */; };
4141
84DEA0D62845F5F200D0206F /* CustomSelectionEventCallback.swift in Sources */ = {isa = PBXBuildFile; fileRef = 84DEA0D52845F5F200D0206F /* CustomSelectionEventCallback.swift */; };
42+
84DEA0D82846013F00D0206F /* CustomTouchEndEventCallback.swift in Sources */ = {isa = PBXBuildFile; fileRef = 84DEA0D72846013F00D0206F /* CustomTouchEndEventCallback.swift */; };
4243
ED0A032527281695000BF778 /* AAInfographics.h in Headers */ = {isa = PBXBuildFile; fileRef = ED0A032327281695000BF778 /* AAInfographics.h */; settings = {ATTRIBUTES = (Public, ); }; };
4344
ED0A032827281695000BF778 /* AAInfographics.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = ED0A032127281695000BF778 /* AAInfographics.framework */; };
4445
ED0A032927281695000BF778 /* AAInfographics.framework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = ED0A032127281695000BF778 /* AAInfographics.framework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; };
@@ -185,6 +186,7 @@
185186
84B68245266DB09100957FC5 /* AAChartSymbolConstant.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AAChartSymbolConstant.swift; sourceTree = "<group>"; };
186187
84DEA0D32845ADEB00D0206F /* CustomMouseOutEventCallback.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CustomMouseOutEventCallback.swift; sourceTree = "<group>"; };
187188
84DEA0D52845F5F200D0206F /* CustomSelectionEventCallback.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = CustomSelectionEventCallback.swift; sourceTree = "<group>"; };
189+
84DEA0D72846013F00D0206F /* CustomTouchEndEventCallback.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = CustomTouchEndEventCallback.swift; sourceTree = "<group>"; };
188190
D01D701A2587EE730093C01F /* ProjectBundlePathLoader.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ProjectBundlePathLoader.swift; sourceTree = "<group>"; };
189191
ED0A032127281695000BF778 /* AAInfographics.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = AAInfographics.framework; sourceTree = BUILT_PRODUCTS_DIR; };
190192
ED0A032327281695000BF778 /* AAInfographics.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = AAInfographics.h; sourceTree = "<group>"; };
@@ -238,6 +240,7 @@
238240
448330B724E270FE00368A30 /* AdvancedUpdatingFeatureVC.swift */,
239241
84DEA0D32845ADEB00D0206F /* CustomMouseOutEventCallback.swift */,
240242
84DEA0D52845F5F200D0206F /* CustomSelectionEventCallback.swift */,
243+
84DEA0D72846013F00D0206F /* CustomTouchEndEventCallback.swift */,
241244
);
242245
path = AdditionalContent1;
243246
sourceTree = "<group>";
@@ -596,6 +599,7 @@
596599
27FADB8620D6569000FED960 /* HideOrShowChartSeriesVC.swift in Sources */,
597600
84AE6B1F26A58380001F0755 /* AADateUTCTool.swift in Sources */,
598601
84DEA0D62845F5F200D0206F /* CustomSelectionEventCallback.swift in Sources */,
602+
84DEA0D82846013F00D0206F /* CustomTouchEndEventCallback.swift in Sources */,
599603
44EB70A722BCB606008FECE4 /* JSFormatterFunctionVC.swift in Sources */,
600604
84B68246266DB09100957FC5 /* AAChartSymbolConstant.swift in Sources */,
601605
84DEA0D42845ADEB00D0206F /* CustomMouseOutEventCallback.swift in Sources */,
Lines changed: 173 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,173 @@
1+
//
2+
// CustomAnyEventCallback.swift
3+
// AAInfographicsDemo
4+
//
5+
// Created by Admin on 2022/5/31.
6+
// Copyright © 2022 An An. All rights reserved.
7+
//
8+
9+
import UIKit
10+
import AAInfographics
11+
import WebKit
12+
13+
let kUserContentMessageNameChartTouchEnd = "touchEnd"
14+
15+
class CustomTouchEndEventCallback: UIViewController, WKScriptMessageHandler {
16+
private var aaChartView: AAChartView!
17+
18+
override func viewDidLoad() {
19+
super.viewDidLoad()
20+
21+
view.backgroundColor = .white
22+
23+
configureChartView()
24+
configureChartViewCustomEventMessageHandler()
25+
26+
let aaOptions = topRoundedCornersStackingColumnChart()
27+
aaChartView.aa_drawChartWithChartOptions(aaOptions)
28+
}
29+
30+
private func configureChartView() {
31+
aaChartView = AAChartView()
32+
let chartViewWidth = view.frame.size.width
33+
let chartViewHeight = view.frame.size.height - 220
34+
aaChartView!.frame = CGRect(x: 0,
35+
y: 60,
36+
width: chartViewWidth,
37+
height: chartViewHeight)
38+
view.addSubview(aaChartView!)
39+
aaChartView!.isScrollEnabled = false//Disable chart content scrolling
40+
aaChartView!.isClearBackgroundColor = true
41+
aaChartView!.delegate = self as AAChartViewDelegate
42+
}
43+
44+
private func configureChartViewCustomEventMessageHandler() {
45+
aaChartView!.configuration.userContentController.add(AALeakAvoider.init(delegate: self), name: kUserContentMessageNameChartTouchEnd)
46+
}
47+
48+
private func topRoundedCornersStackingColumnChart() -> AAOptions {
49+
let aaChartModel = AAChartModel()
50+
.chartType(.column)
51+
.stacking(.normal)
52+
.title("Top Rounded Corners Stacking Column Chart")
53+
.colorsTheme(["#fe117c", "#ffc069", "#06caf4",])
54+
.series([
55+
AASeriesElement()
56+
.name("Tokyo Hot")
57+
.borderRadiusTopLeft("50%")
58+
.borderRadiusTopRight("50%")
59+
.data([2.10, 2.54, 2.78, 3.62, 4.41, 4.09, 3.83, 4.47, 4.20, 3.94, 3.80, 3.58, 3.19, 4.30, 3.69, 3.52, 3.02, 3.30]),
60+
])
61+
62+
let aaOptions = aaChartModel.aa_toAAOptions()
63+
64+
return aaOptions
65+
}
66+
67+
68+
func userContentController(_ userContentController: WKUserContentController, didReceive message: WKScriptMessage) {
69+
if message.name == kUserContentMessageNameChartTouchEnd {
70+
let messageBody = message.body
71+
print(messageBody)
72+
}
73+
}
74+
75+
}
76+
77+
extension CustomTouchEndEventCallback: AAChartViewDelegate {
78+
open func aaChartViewDidFinishLoad(_ aaChartView: AAChartView) {
79+
print("🚀🚀🚀, AAChartView Did Finished Load!!!")
80+
81+
let jsStr = #"""
82+
function handleTouchEndEvent() {
83+
window.webkit.messageHandlers.touchEnd.postMessage("成功了, 真的成功了");
84+
85+
}
86+
let container = document.getElementById('container');
87+
container.addEventListener("touchend", handleTouchEndEvent, false);
88+
"""#
89+
90+
aaChartView.evaluateJavaScript(jsStr) { (item, error) in
91+
#if DEBUG
92+
if error != nil {
93+
let objcError = error! as NSError
94+
let errorUserInfo = objcError.userInfo
95+
96+
let errorInfo =
97+
"""
98+
99+
☠️☠️💀☠️☠️WARNING!!!!!!!!!!!!!!!!!!!! FBI WARNING !!!!!!!!!!!!!!!!!!!!WARNING☠️☠️💀☠️☠️
100+
==========================================================================================
101+
------------------------------------------------------------------------------------------
102+
code = \(objcError.code);
103+
domain = \(objcError.domain);
104+
userInfo = {
105+
NSLocalizedDescription = "A JavaScript exception occurred";
106+
WKJavaScriptExceptionColumnNumber = \(errorUserInfo["WKJavaScriptExceptionColumnNumber"] ?? "");
107+
WKJavaScriptExceptionLineNumber = \(errorUserInfo["WKJavaScriptExceptionLineNumber"] ?? "");
108+
WKJavaScriptExceptionMessage = \(errorUserInfo["WKJavaScriptExceptionMessage"] ?? "");
109+
WKJavaScriptExceptionSourceURL = \(errorUserInfo["WKJavaScriptExceptionSourceURL"] ?? "");
110+
}
111+
------------------------------------------------------------------------------------------
112+
==========================================================================================
113+
☠️☠️💀☠️☠️WARNING!!!!!!!!!!!!!!!!!!!! FBI WARNING !!!!!!!!!!!!!!!!!!!!WARNING☠️☠️💀☠️☠️
114+
115+
"""
116+
print(errorInfo)
117+
}
118+
#endif
119+
120+
}
121+
122+
}
123+
124+
open func aaChartView(_ aaChartView: AAChartView, clickEventMessage: AAClickEventMessageModel) {
125+
print(
126+
"""
127+
128+
clicked point series element name: \(clickEventMessage.name ?? "")
129+
🖱🖱🖱WARNING!!!!!!!!!!!!!!!!!!!! Click Event Message !!!!!!!!!!!!!!!!!!!! WARNING🖱🖱🖱
130+
==========================================================================================
131+
------------------------------------------------------------------------------------------
132+
user finger moved over!!!,get the move over event message: {
133+
category = \(String(describing: clickEventMessage.category))
134+
index = \(String(describing: clickEventMessage.index))
135+
name = \(String(describing: clickEventMessage.name))
136+
offset = \(String(describing: clickEventMessage.offset))
137+
x = \(String(describing: clickEventMessage.x))
138+
y = \(String(describing: clickEventMessage.y))
139+
}
140+
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
141+
142+
143+
"""
144+
)
145+
}
146+
147+
open func aaChartView(_ aaChartView: AAChartView, moveOverEventMessage: AAMoveOverEventMessageModel) {
148+
print(
149+
"""
150+
151+
moved over point series element name: \(moveOverEventMessage.name ?? "")
152+
✋🏻✋🏻✋🏻✋🏻✋🏻WARNING!!!!!!!!!!!!!! Move Over Event Message !!!!!!!!!!!!!! WARNING✋🏻✋🏻✋🏻✋🏻✋🏻
153+
==========================================================================================
154+
------------------------------------------------------------------------------------------
155+
user finger moved over!!!,get the move over event message: {
156+
category = \(String(describing: moveOverEventMessage.category))
157+
index = \(String(describing: moveOverEventMessage.index))
158+
name = \(String(describing: moveOverEventMessage.name))
159+
offset = \(String(describing: moveOverEventMessage.offset))
160+
x = \(String(describing: moveOverEventMessage.x))
161+
y = \(String(describing: moveOverEventMessage.y))
162+
}
163+
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
164+
165+
166+
"""
167+
)
168+
}
169+
170+
}
171+
172+
173+

0 commit comments

Comments
 (0)