cordova-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Andrew Grieve <agri...@chromium.org>
Subject Re: Determining if "you're in cordova"
Date Tue, 04 Dec 2012 03:41:35 GMT
I don't really understand using cordova.js outside of Cordova. There's one
for every platform, so which one gets included in the web version?

It's a neat idea to have a web-platform that just has things like
cordova/util in it, or that has everything except an exec() implementation
in it... Maybe for unit testing purposes, or to aid projects like Ripple.

I also like the idea of making it easy for apps to append a suffix to the
User-Agent. Good for analytics.


On Mon, Dec 3, 2012 at 8:32 PM, Andrew Lunny <alunny@gmail.com> wrote:

> The problem, afaict, is distinguishing between:
>
> 1) deviceready hasn't fired yet
> 2) deviceready isn't ever going to fire
>
> which right now boils down to "guess how long deviceready will take, and
> setTimeout() until some time after that."
>
> I tend to agree with Max - it'd be a worthwhile thing to have, unless the
> implementation is prohibitively difficult.
>
> On 3 December 2012 17:17, Anis KADRI <anis.kadri@gmail.com> wrote:
>
> > Well because it never fires you know that you are in a browser's context.
> > It will only fire if you're on a device or if you fire it yourself.
> >
> > There could be two reasons (as far as I know) that 'deviceready' would
> not
> > fire.
> > 1) not in a cordova app context (browser via file:// or http://).
> > 2) there is a problem with cordova itself (problem fetching
> device/network
> > info).
> >
> > actions for both
> > 1) You know whether or not you are in a cordova context: do whatever you
> > have to do: use childbrowser or a popup,  don't use device apis that are
> > not available etc...
> > 2) find out if you're not missing anything and/or file a bug
> >
> > I believe that 'deviceready' is more reliable then document.location
> > because it really is cordova specific.
> >
> >
> >
> >
> > On Mon, Dec 3, 2012 at 5:06 PM, Filip Maj <fil@adobe.com> wrote:
> >
> > > But look at that situation from the browser's POV: it attaches to an
> > event
> > > that never fires.
> > >
> > > cordova.js is included and window.cordova exists, but in a browser's
> > > context, it does nothing.
> > >
> > > On 12/3/12 5:03 PM, "Anis KADRI" <anis.kadri@gmail.com> wrote:
> > >
> > > >document.addEventListener('deviceready', function()
> > {navigator.inCordova =
> > > >true;}, false);
> > > >
> > > >If you fire 'deviceready' yourself then you already know that you're
> not
> > > >in
> > > >a cordova app context. Don't you ?
> > > >
> > > >Sorry, I really don't see what the problem is. Maybe an real world
> > example
> > > >would help illustrate it. Or is there a reason why you don't want to
> use
> > > >deviceready as an indicator ?
> > > >
> > > >
> > > >On Mon, Dec 3, 2012 at 4:40 PM, Max Ogden <max@maxogden.com> wrote:
> > > >
> > > >> if cordova polyfilled standard apis for everything it wouldn't be
> > > >>cordovas
> > > >> problem. but right now there are only-in-cordova APIs that I need
to
> > > >>use if
> > > >> i'm in cordova. it would be more convenient for me as an app
> developer
> > > >>if
> > > >> there was a supported way to know i'm in cordova.
> > > >>
> > > >> I can keep looking at window.location.href and make sure to always
> > run a
> > > >> local web server for development (and never open the file directly
> on
> > my
> > > >> dev machine) but the point here is that doing those things is more
> > > >>pitfall
> > > >> prone and less user friendly for new devs than doing "if
> > > >> (navigator.inCordova)".
> > > >>
> > > >> if its a ton of work to implement then I can understand not doing
it
> > (I
> > > >> dont know what it would take to implement). i'm just trying to say
> it
> > > >>would
> > > >> be a nicer api :) it seems from my perspective that it would be easy
> > for
> > > >> cordova to tell the browser that cordova is present and it would
> save
> > > >>app
> > > >> developers from having to use yet another hacky technique.
> > > >>
> > >
> > >
> >
>

Mime
  • Unnamed multipart/alternative (inline, None, 0 bytes)
View raw message