3 Replies Latest reply on May 13, 2016 11:04 AM by nickg

    FMGo15 unexpected changes?


      I have a FM14 developed app that shows some odd differences when running on FMGo15 vs FMGo14.


      On startup, the app opens a window ("GPS Tracker") with a webviewer that itself runs some JavaScript to monitor the GPS location every 15 seconds and sends the result via a FMPURL call into a global variable $$GPSLocation. Because the data are written to the global variable rather than to a data field, the script that responds to the FMPURL call is context independent. "GPS Tracker" displays the location data, converts lat-long to UTM and GBOS grid references, and chimes when a 1km boundary is crossed. It can also optionally log a track of all the points. The raw GPS data are displayed in the webviewer for debugging purposes. In FMGo13/14 this tracking continues to work when the GPS Tracker window is hidden.


      The "GPS Tracker" is hidden on startup and the main window is then displayed, in which ecological field records are made. Because the GPS Tracker window updates the global variable $$GPSLocation in the background, the main window can display the current location using a merge variable <<$$GPSLocation>>. A button on the main window header brings the "GPS Tracker" window to the foreground if wanted (and the "GPS Tracker" window has a corresponding Hide button to switch back to the main window).


      I hope that is clear so far ... now the unexpected changes:

      1) the font in the GPS Tracker webviewer in FMGo15 is now tiny and has to be manually zoomed to be readable (just inconvenient)

      2) critically, the GPS Tracker webviewer now stops running as soon as the GPS Tracker window is hidden, only waking again when the window is revealed. This is evident from the GPS raw data display in the webviewer, which does not update at all when the window is hidden (whereas is does continue to run in FMGo14).


      So, it appears that the JavaScript thread in the webviewer no longer runs independently of the window, as it used to do in FMGo14. In FMGo14 the JavaScript only paused when the whole FM app was hidden on pressing the Home button or the iPad cover closed.


      Apart from that, FMGo15 does appear more responsive and it does seem as though the terrible slow-down in SQL performance that came with 'upgrade' from FMGo13 has at least partially improved (I haven't run any tests to quantify by how much).


      Is this change in background window behaviour intended? I haven't noticed any mention of it so far.


      Has anyone else experienced this? Any suggestions for a workaround?



        • 1. Re: FMGo15 unexpected changes?

          Hi Nick,


          1) see the reply by TSGal in this thread:



          2) unless you need speed and direction, drop the javascript in favour of the LocationValues() function and use an onTimer trigger.





          • 2. Re: FMGo15 unexpected changes?



            Thank you for your post.


            The link from "Jade" (Thank you!) is definitely relevant for the first issue.  In essence, in FileMaker Go 14, we were using an API to the iOS WebKit that had recently been deprecated, so in FileMaker Go 15, we switched to the new API.  You now have to make adjustments to your calculation to show the correct sized font.  Generally, add the HTML code after the <head> section of your calculation:

            <meta name=\"viewport\" content=\"initial-scale=1.0\" />"



            FileMaker, Inc.

            • 3. Re: FMGo15 unexpected changes?

              Thanks Jon


              I used to do that but found it interfered with the main window, freezing the screen while it read the GPS to sufficient accuracy, which can be very irritating avery 15 seconds! Presumably the JS in the webviewer runs in a separate thread, because the JS version does not cause a spinning dial when reading the GPS.


              AFAIK every script runs in the same thread regardless of originating window, so I can't see a way of preventing this interaction using LocationValues(). I would love someone to prove me wrong :-)