(function _wk_plugin() { // Check if we are running in WKWebView if (!window.webkit || !window.webkit.messageHandlers) { return; } // Initialize Ionic window.Ionic = window.Ionic || {}; function normalizeURL(url) { console.warn('normalizeURL is deprecated, use window.Ionic.WebView.convertFileSrc'); return window.Ionic.WebView.convertFileSrc(url); } if (typeof window.wkRewriteURL === 'undefined') { window.wkRewriteURL = function (url) { console.warn('wkRewriteURL is deprecated, use window.Ionic.WebView.convertFileSrc instead'); return window.Ionic.WebView.convertFileSrc(url); } } window.Ionic.normalizeURL = normalizeURL; var stopScrollHandler = window.webkit.messageHandlers.stopScroll; if (!stopScrollHandler) { console.error('Can not find stopScroll handler'); return; } var stopScrollFunc = null; var stopScroll = { stop: function stop(callback) { if (!stopScrollFunc) { stopScrollFunc = callback; stopScrollHandler.postMessage(''); } }, fire: function fire() { stopScrollFunc && stopScrollFunc(); stopScrollFunc = null; }, cancel: function cancel() { stopScrollFunc = null; } }; window.Ionic.StopScroll = stopScroll; // deprecated window.IonicStopScroll = stopScroll; console.debug("Ionic Stop Scroll injected!"); })();