diff options
Diffstat (limited to 'www/wk-plugin.js')
| -rw-r--r-- | www/wk-plugin.js | 51 |
1 files changed, 51 insertions, 0 deletions
diff --git a/www/wk-plugin.js b/www/wk-plugin.js new file mode 100644 index 0000000..336ab8b --- /dev/null +++ b/www/wk-plugin.js @@ -0,0 +1,51 @@ + +(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!"); +})(); |
