Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- <html>
- <head>
- </head>
- <body>
- <script type="text/javascript">
- function isFunction(functionToCheck) {
- if ((functionToCheck == null) || (functionToCheck == undefined)) {
- return false;
- }
- var getType = {};
- return functionToCheck && getType.toString.call(functionToCheck) === '[object Function]';
- }
- var PebbleEventListener = {
- events: [],
- addEventListener: function (type, callback) {
- if (!this.events[type]) {
- this.events[type] = [];
- // call the event initializer, if this is the first time we
- // bind to this event.
- if (typeof (this._eventInitializers[type]) == 'function') {
- this._eventInitializers[type]();
- }
- }
- if (isFunction(callback)) {
- this.events[type].push(callback);
- }
- },
- removeEventListener: function (type, callback) {
- var listeners = this.events[type];
- if (!listeners) { return; }
- for (var i = listeners.length; i--;) {
- if (listeners[i] === callback) {
- listeners.splice(i, 1);
- }
- }
- },
- _eventInitializers: {},
- dispatchEvent: function (event) {
- var listeners = this.events[event.type];
- if (!listeners) { return false; }
- var removeList = [];
- var returnVal = true;
- for (var i = 0; i < listeners.length; i++) {
- try {
- var removeListener = listeners[i](event);
- if (removeListener === true) {
- removeList.push(i);
- }
- }
- catch (e) {
- //guard against bad external code calls
- console.log('jskit_system :: PebbleEventListener : bad dispatch on event ' + event.type);
- returnVal = false;
- }
- }
- for (var i = (removeList.length) - 1; i >= 0; i--) {
- try {
- listeners.splice(removeList[i], 1);
- console.log('jskit_system :: PebbleEventListener : post-dispatch removed listener ' + removeList[i]
- + ' on event ' + event.type);
- }
- catch (e) {
- console.log('jskit_system :: PebbleEventListener : post-dispatch failed to remove listener '
- + removeList[i]
- + ' on event ' + event.type);
- }
- }
- return returnVal;
- }
- }
- var PebbleCallbackListener = {
- events: [],
- addEventListener: function (type, callback) {
- if (!this.events[type]) {
- this.events[type] = [];
- }
- if (isFunction(callback)) {
- this.events[type].push(callback);
- }
- },
- removeEventListener: function (type, callback) {
- var listeners = this.events[type];
- if (!listeners) { return; }
- for (var i = listeners.length; i--;) {
- if (listeners[i] === callback) {
- listeners.splice(i, 1);
- }
- }
- },
- _eventInitializers: {},
- dispatchEvent: function (event) {
- var listeners = this.events[event.type];
- if (!listeners) { return false; }
- var removeList = [];
- var returnVal = true;
- for (var i = 0; i < listeners.length; i++) {
- try {
- var removeListener = listeners[i]();
- if (removeListener === true) {
- removeList.push(i);
- }
- }
- catch (e) {
- //guard against bad external code calls
- console.log('jskit_system :: PebbleEventListener : bad dispatch on event ' + event.type);
- returnVal = false;
- }
- }
- for (var i = (removeList.length) - 1; i >= 0; i--) {
- try {
- listeners.splice(removeList[i], 1);
- console.log('jskit_system :: PebbleEventListener : post-dispatch removed listener ' + removeList[i]
- + ' on event ' + event.type);
- }
- catch (e) {
- console.log('jskit_system :: PebbleEventListener : post-dispatch failed to remove listener '
- + removeList[i]
- + ' on event ' + event.type);
- }
- }
- return returnVal;
- }
- }
- var guid = (function () {
- function s4() {
- return Math.floor((1 + Math.random()) * 0x10000)
- .toString(16)
- .substring(1);
- }
- return function () {
- return s4() + s4() + '-' + s4() + '-' + s4() + '-' +
- s4() + '-' + s4() + s4() + s4();
- };
- })();
- function Pebble(key) {
- window.external.notify("ah");
- }
- Pebble.addEventListener = function (type, callback) {
- PebbleEventListener.addEventListener(type, callback);
- };
- Pebble.removeEventListener = function (type, callback) {
- PebbleEventListener.removeEventListener(type, callback);
- };
- Pebble.sendAppMessage = function (data, success, failure) {
- var callbackUuid = guid();
- window.external.notify(JSON.stringify({ "method": "sendAppMessage", "data": data, "callback": callbackUuid}));
- if (isFunction(success)) {
- PebbleCallbackListener.addEventListener('sendMessageCallbackSuccess' + callbackUuid, success);
- //success();
- }
- if (isFunction(failure)) {
- Pebble.addEventListener('sendMessageCallbackFailure' + callbackUuid, failure);
- }
- };
- Pebble.openURL = function (url) {
- window.external.notify(JSON.stringify({ "method": "openURL", "data": url }));
- };
- Pebble.getAccountToken = function () {
- return '';
- };
- Pebble.getWatchToken = function () {
- return '';
- };
- Pebble.showSimpleNotificationOnPebble = function (title, text) {
- window.external.notify(JSON.stringify({ "method": "showSimpleNotificationOnPebble", "title": title, "text": text }));
- };
- console.log = function (data) {
- window.external.notify(JSON.stringify({ "method": "log", "data": data }));
- }
- internalOpenURLCallback = function (content) {
- var event = document.createEvent('Event');
- event.initEvent('webviewclosed', true, true);
- event.type = 'webviewclosed';
- event.data = content;
- event.response = content;
- //event.data = data;
- //event.ready = data;
- var success = PebbleEventListener.dispatchEvent(event);
- };
- internalAppMessageCallback = function (content) {
- var event = document.createEvent('Event');
- event.initEvent('appmessage', true, true);
- event.type = 'appmessage';
- event.data = content;
- event.payload = JSON.parse(content);
- //event.data = data;
- //event.ready = data;
- console.log(content);
- var success = PebbleEventListener.dispatchEvent(event);
- };
- function signalTest(eventType) {
- var event = document.createEvent('Event');
- event.initEvent(eventType, true, true);
- event.type = eventType;
- //event.data = data;
- //event.ready = data;
- var success = PebbleEventListener.dispatchEvent(event);
- }
- function signalTest2(eventType) {
- var event = document.createEvent('Event');
- event.initEvent(eventType, true, true);
- event.type = eventType;
- //event.data = data;
- //event.ready = data;
- var success = PebbleCallbackListener.dispatchEvent(event);
- }
- </script>
- </body>
- </html>
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement