जावास्क्रिप्ट हैंडलर लागू करें
वेबव्यू में Google Analytics का उपयोग करने में पहला कदम घटनाओं और उपयोगकर्ता गुणों को मूल कोड में अग्रेषित करने के लिए जावास्क्रिप्ट फ़ंक्शन बनाना है। निम्नलिखित उदाहरण दिखाता है कि इसे इस तरह से कैसे किया जाए जो Android और Apple दोनों के मूल कोड के साथ संगत हो:function logEvent(name, params) { if (!name) { return; } if (window.AnalyticsWebInterface) { // Call Android interface window.AnalyticsWebInterface.logEvent(name, JSON.stringify(params)); } else if (window.webkit && window.webkit.messageHandlers && window.webkit.messageHandlers.firebase) { // Call iOS interface var message = { command: 'logEvent', name: name, parameters: params }; window.webkit.messageHandlers.firebase.postMessage(message); } else { // No Android or iOS interface found console.log("No native APIs found."); } } function setUserProperty(name, value) { if (!name || !value) { return; } if (window.AnalyticsWebInterface) { // Call Android interface window.AnalyticsWebInterface.setUserProperty(name, value); } else if (window.webkit && window.webkit.messageHandlers && window.webkit.messageHandlers.firebase) { // Call iOS interface var message = { command: 'setUserProperty', name: name, value: value }; window.webkit.messageHandlers.firebase.postMessage(message); } else { // No Android or iOS interface found console.log("No native APIs found."); } }
मूल इंटरफ़ेस लागू करें
जावास्क्रिप्ट से मूल Apple कोड को लागू करने के लिए, WKScriptMessageHandler
प्रोटोकॉल के अनुरूप एक संदेश हैंडलर क्लास बनाएं। आप userContentController:didReceiveScriptMessage:
कॉलबैक के अंदर Google Analytics कॉल कर सकते हैं:
तीव्र
func userContentController(_ userContentController: WKUserContentController, didReceive message: WKScriptMessage) { guard let body = message.body as? [String: Any] else { return } guard let command = body["command"] as? String else { return } guard let name = body["name"] as? String else { return } if command == "setUserProperty" { guard let value = body["value"] as? String else { return } Analytics.setUserProperty(value, forName: name) } else if command == "logEvent" { guard let params = body["parameters"] as? [String: NSObject] else { return } Analytics.logEvent(name, parameters: params) } }
उद्देश्य सी
- (void)userContentController:(WKUserContentController *)userContentController didReceiveScriptMessage:(WKScriptMessage *)message { if ([message.body[@"command"] isEqual:@"setUserProperty"]) { [FIRAnalytics setUserPropertyString:message.body[@"value"] forName:message.body[@"name"]]; } else if ([message.body[@"command"] isEqual: @"logEvent"]) { [FIRAnalytics logEventWithName:message.body[@"name"] parameters:message.body[@"parameters"]]; } }
अंत में, संदेश हैंडलर को वेबव्यू के उपयोगकर्ता सामग्री नियंत्रक में जोड़ें:
तीव्र
self.webView.configuration.userContentController.add(self, name: "firebase")
उद्देश्य सी
[self.webView.configuration.userContentController addScriptMessageHandler:self name:@"firebase"];
अगले कदम
वेबव्यू में Google Analytics के पूर्ण कार्यात्मक कार्यान्वयन के लिए, एनालिटिक्स-वेबव्यू नमूना देखें।