BitShares Forum

Main => Technical Support => Topic started by: puppies on April 01, 2016, 06:39:29 am

Title: webwallet on ios
Post by: puppies on April 01, 2016, 06:39:29 am
my webwallet used to work in safari on my iphone.  Now its just a loading screen that never finishes loading.  Is there a trick to getting the wallet to load properly on ios?  I have tried to use the older version of npm, and of course have run npm install in the ios folder.  In short I have tried building the newer wallets exactly as I used to build the old wallets.  The only thing I haven't tried is to build an older gui to see if that what is needed. 

Any ideas?
Title: Re: webwallet on ios
Post by: xeroc on April 01, 2016, 09:34:06 am
Does Safari have a Javascript Console that maybe gives us a little more information about what is going on?
Title: Re: webwallet on ios
Post by: puppies on April 01, 2016, 02:22:49 pm
Great idea Xeroc.  Apparently there is but it needs to be connected to a computer and read that way.  I will install the software on my mac when I get home to it.
Title: Re: webwallet on ios
Post by: puppies on April 09, 2016, 05:41:52 pm
So a little bit more detail.  I get the same loading screen on Chrome on iOS.  To me it looks like there is an error in the 1app.js in regards to the date time, but I could be way off.  The error that shows up is
Code: [Select]
undefined is not an object (evaluating 'o.replace')its in the following function on the second to last line.  Line 1233:197 in the full pastebin
Code: [Select]
        function o(e) {
            var a, o, l, c, u, m = e.availableFormats, g = e.timeFormats, h = e.dateFormats, d = [], f = [], p = [];
            for (a in m)
                m.hasOwnProperty(a) && (o = m[a], l = i(a, o), l && (d.push(l), r(l) ? p.push(l) : n(l) && f.push(l)));
            for (a in g)
                g.hasOwnProperty(a) && (o = g[a], l = i(a, o), l && (d.push(l), f.push(l)));
            for (a in h)
                h.hasOwnProperty(a) && (o = h[a], l = i(a, o), l && (d.push(l), p.push(l)));
            for (c = 0; c < f.length; c += 1)
                for (u = 0; u < p.length; u += 1)
                    o = "long" === p[u].month ? p[u].weekday ? e.full : e["long"] : "short" === p[u].month ? e.medium : e["short"], l = t(p[u], f[c]), l.originalPattern = o, l.extendedPattern = o.replace("{0}", f[c].extendedPattern).replace("{1}", p[u].extendedPattern).replace(/^[,\s]+|[,\s]+$/gi, ""), d.push(s(l));
            return d
        }
Here is the full non working 1.app.js  http://pastebin.com/Y5v2WkPp
 

and here is an older working 1.app.js http://pastebin.com/tv90KhtT

To me it looks like it is handling the date time issue with this function
Code: [Select]
       function s(e) {
            function n(e, n) {
                var a = new Array((e.match(/M/g) || []).length + 1), r = new Array((e.match(/E/g) || []).length + 1);
                return a.length > 2 && (n = n.replace(/(M|L)+/, a.join("$1"))), r.length > 2 && (n = n.replace(/([Eec])+/, r.join("$1"))), n
            }
            var s, i, o, l, c, u = e.availableFormats, m = e.timeFormats, g = e.dateFormats, h = e.medium, d = [], p = [], f = [];
            for (s in u)
                u.hasOwnProperty(s) && (i = n(s, u[s]), o = t(i), o && (d.push(o), a(o) ? f.push(i) : r(o) && p.push(i)));
            for (l = 0; l < p.length; l += 1)
                for (c = 0; c < f.length; c += 1)
                    i = h.replace("{0}", p[l]).replace("{1}", f[c]).replace(/^[,\s]+|[,\s]+$/gi, ""), o = t(i), o && d.push(o);
            for (s in m)
                m.hasOwnProperty(s) && (i = n(s, m[s]), o = t(i), o && d.push(o));
            for (s in g)
                g.hasOwnProperty(s) && (i = n(s, g[s]), o = t(i), o && d.push(o));
            return d
        }

Any help or suggestions would be greatly appreciated.
Title: Re: webwallet on ios
Post by: xeroc on April 09, 2016, 06:26:11 pm
Have you ever tried to compile the web wallet on your own? Because instead of compiling it for a productive release (the code that you see), you can do so with debugging informations and withouth "uglification" by using the webpack-dev-server ..
If you have install npm, all you need to do is run "npm install" in the dl/ and web/ folder and then do "npm start" in the webfolder .. it will open up a development port on localhost .. making it listen to the localnetwork instead of localhost, you should be able to load that from an iphone in your local network. You get what I am trying to say?
Title: Re: webwallet on ios
Post by: puppies on April 09, 2016, 06:37:03 pm
Have you ever tried to compile the web wallet on your own? Because instead of compiling it for a productive release (the code that you see), you can do so with debugging informations and withouth "uglification" by using the webpack-dev-server ..
If you have install npm, all you need to do is run "npm install" in the dl/ and web/ folder and then do "npm start" in the webfolder .. it will open up a development port on localhost .. making it listen to the localnetwork instead of localhost, you should be able to load that from an iphone in your local network. You get what I am trying to say?

Yeah.  I understand I will give that a try.
Title: Re: webwallet on ios
Post by: puppies on April 09, 2016, 07:06:13 pm
I am even more confused by the dev-server.  The console still shows a date time error, but there is another connection error that recurs every few seconds.  That might be the actual problem.

date time error
Code: [Select]
[Error] TypeError: undefined is not an object (evaluating 'pattern
                .replace')
createDateTimeFormats
ToDateTimeFormats
InitializeDateTimeFormat
addLocaleData
value
(anonymous function)
(anonymous function)
(anonymous function) (app.js:146)
webpackJsonpCallback (app.js:40)
global code (1.app.js:1)

connection issue
Code: [Select]
[Log] [HMR] Waiting for update signal from WDS...
[Error] Failed to load resource: Could not connect to the server. (info, line 0)
[Error] [WDS] Disconnected!
onclose
dispatchEvent
(anonymous function)
(anonymous function)

The connection issue seems to point to app.js 1329 and http://localhost:8080/sockjs-node/info?t=1460227644397 which just shows a page that says
Code: [Select]
{"websocket":true,"origins":["*:*"],"cookie_needed":false,"entropy":2488820754}
As it fails to load over and over again the entropy changes but nothing else.

app.js line 1329 is the eval line in this function
Code: [Select]
/* 73 */
/*!****************************************!*\
  !*** (webpack)/hot/only-dev-server.js ***!
  \****************************************/
/***/ function(module, exports, __webpack_require__) {

eval("/*\r\n\tMIT License http://www.opensource.org/licenses/mit-license.php\r\n\tAuthor Tobias Koppers @sokra\r\n*/\r\n/*globals window __webpack_hash__ */\r\nif(true) {\r\n\tvar lastData;\r\n\tvar upToDate = function upToDate() {\r\n\t\treturn lastData.indexOf(__webpack_require__.h()) >= 0;\r\n\t};\r\n\tvar check = function check() {\r\n\t\tmodule.hot.check(function(err, updatedModules) {\r\n\t\t\tif(err) {\r\n\t\t\t\tif(module.hot.status() in {\r\n\t\t\t\t\t\tabort: 1,\r\n\t\t\t\t\t\tfail: 1\r\n\t\t\t\t\t}) {\r\n\t\t\t\t\tconsole.warn(\"[HMR] Cannot check for update. Need to do a full reload!\");\r\n\t\t\t\t\tconsole.warn(\"[HMR] \" + err.stack || err.message);\r\n\t\t\t\t} else {\r\n\t\t\t\t\tconsole.warn(\"[HMR] Update check failed: \" + err.stack || err.message);\r\n\t\t\t\t}\r\n\t\t\t\treturn;\r\n\t\t\t}\r\n\r\n\t\t\tif(!updatedModules) {\r\n\t\t\t\tconsole.warn(\"[HMR] Cannot find update. Need to do a full reload!\");\r\n\t\t\t\tconsole.warn(\"[HMR] (Probably because of restarting the webpack-dev-server)\");\r\n\t\t\t\treturn;\r\n\t\t\t}\r\n\r\n\t\t\tmodule.hot.apply({\r\n\t\t\t\tignoreUnaccepted: true\r\n\t\t\t}, function(err, renewedModules) {\r\n\t\t\t\tif(err) {\r\n\t\t\t\t\tif(module.hot.status() in {\r\n\t\t\t\t\t\t\tabort: 1,\r\n\t\t\t\t\t\t\tfail: 1\r\n\t\t\t\t\t\t}) {\r\n\t\t\t\t\t\tconsole.warn(\"[HMR] Cannot apply update. Need to do a full reload!\");\r\n\t\t\t\t\t\tconsole.warn(\"[HMR] \" + err.stack || err.message);\r\n\t\t\t\t\t} else {\r\n\t\t\t\t\t\tconsole.warn(\"[HMR] Update failed: \" + err.stack || err.message);\r\n\t\t\t\t\t}\r\n\t\t\t\t\treturn;\r\n\t\t\t\t}\r\n\r\n\t\t\t\tif(!upToDate()) {\r\n\t\t\t\t\tcheck();\r\n\t\t\t\t}\r\n\r\n\t\t\t\t__webpack_require__(/*! ./log-apply-result */ 74)(updatedModules, renewedModules);\r\n\r\n\t\t\t\tif(upToDate()) {\r\n\t\t\t\t\tconsole.log(\"[HMR] App is up to date.\");\r\n\t\t\t\t}\r\n\t\t\t});\r\n\t\t});\r\n\t};\r\n\tvar addEventListener = window.addEventListener ? function(eventName, listener) {\r\n\t\twindow.addEventListener(eventName, listener, false);\r\n\t} : function(eventName, listener) {\r\n\t\twindow.attachEvent(\"on\" + eventName, listener);\r\n\t};\r\n\taddEventListener(\"message\", function(event) {\r\n\t\tif(typeof event.data === \"string\" && event.data.indexOf(\"webpackHotUpdate\") === 0) {\r\n\t\t\tlastData = event.data;\r\n\t\t\tif(!upToDate() && module.hot.status() === \"idle\") {\r\n\t\t\t\tconsole.log(\"[HMR] Checking for updates on the server...\");\r\n\t\t\t\tcheck();\r\n\t\t\t}\r\n\t\t}\r\n\t});\r\n\tconsole.log(\"[HMR] Waiting for update signal from WDS...\");\r\n} else {\r\n\tthrow new Error(\"[HMR] Hot Module Replacement is disabled.\");\r\n}\r\n\n\n/*****************\n ** WEBPACK FOOTER\n ** (webpack)/hot/only-dev-server.js\n ** module id = 73\n ** module chunks = 0\n **/\n//# sourceURL=webpack:///(webpack)/hot/only-dev-server.js?");

/***/ },

edit**
On bitshares.openledger.info I get
Code: [Select]
[Error] WebSocket network error: The operation couldn’t be completed. Connection refused (x14)Is that the same error, just production versus dev-server?
Title: Re: webwallet on ios
Post by: xeroc on April 09, 2016, 07:25:02 pm
So Safari doesn't work properly with WebSockets?! Weird
Title: Re: webwallet on ios
Post by: svk on April 09, 2016, 07:36:21 pm
I'll try to have a look on my macbook, it should at least load, no reason not to. There's still an issue with the backups afaik though which means it's not ideal using safari.

Sent fra min MotoG3 via Tapatalk