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