ICEmobile
  1. ICEmobile
  2. MOBI-735

Google Maps navigation doesn't work on Android Container in BB10 runtime

    Details

    • Type: Bug Bug
    • Status: Resolved
    • Priority: Major Major
    • Resolution: Fixed
    • Affects Version/s: 1.2 Final
    • Fix Version/s: 1.3 Beta
    • Component/s: Containers
    • Labels:
      None
    • Environment:
      Android Container running in BB10 Runtime

      Description

      Navigating to the Google Maps page in mobileshowcase doesn't arrive at the page. Instead, the user is returned to the main application entry point, without any apparent error.

        Issue Links

          Activity

          Hide
          Greg Dick added a comment -

          It appears that the browser is not reloading the page. Here's a series of requests generated by the browser when I click on the google maps link:

          3.8051 10:15:57.321s] – POST /mobileshowcase/showcase.jsf HTTP/1.1
          [3.8758 10:15:57.392s]
          [4.3241 10:15:57.840s] – GET /mobileshowcase/javax.faces.resource/jsf.js.jsf?ln=javax.faces&stage=Development&v=3_4_0_130514 HTTP/1.1
          [4.3432 10:15:57.859s] – GET /mobileshowcase/javax.faces.resource/bridge.uncompressed.js.jsf?ln=ice.core&v=3_4_0_130514 HTTP/1.1
          [4.3694 10:15:57.886s] – GET /mobileshowcase/javax.faces.resource/icepush.uncompressed.js.jsf?ln=ice.push&v=3_4_0_130514 HTTP/1.1
          [4.4080 10:15:57.924s] – GET /mobileshowcase/javax.faces.resource/component.js.jsf?ln=org.icefaces.component.util&v=3_4_0_130514 HTTP/1.1
          [4.4407 10:15:57.957s] – GET /mobileshowcase/javax.faces.resource/bb10.css.jsf?ln=org.icefaces.component.skins&v=3_4_0_130514 HTTP/1.1
          [4.4762 10:15:57.992s] – GET /mobileshowcase/javax.faces.resource/icemobile_thumb.png.jsf?ln=images&v=3_4_0_130514 HTTP/1.1
          [4.5004 10:15:58.016s] – GET /mobileshowcase/javax.faces.resource/showcase.css.jsf?ln=css&v=3_4_0_130514 HTTP/1.1
          [4.6085 10:15:58.125s] – GET /mobileshowcase/javax.faces.resource/org.icefaces.component.skins/bb10/back.png.jsf?v=3_4_0_130514 HTTP/1.1
          [4.6177 10:15:58.134s] – GET /mobileshowcase/javax.faces.resource/org.icefaces.component.skins/bb10/icons-18-white.png.jsf?v=3_4_0_130514 HTTP/1.1
          [4.6284 10:15:58.144s] – GET /mobileshowcase/javax.faces.resource/org.icefaces.component.skins/bb10/next.png.jsf?v=3_4_0_130514 HTTP/1.1
          [4.6492 10:15:58.165s] – GET /mobileshowcase/javax.faces.resource/org.icefaces.component.skins/bb10/fontawesome-webfont.ttf.jsf HTTP/1.1
          [4.6666 10:15:58.183s] – GET /mobileshowcase/javax.faces.resource/org.icefaces.component.skins/bb10/icons-36-white.png.jsf?v=3_4_0_130514 HTTP/1.1
          [4.7073 10:15:58.223s] – GET /mobileshowcase/javax.faces.resource/images/icons-white.png.jsf HTTP/1.1
          [4.8556 10:15:58.372s] – POST /mobileshowcase/javax.faces.resource/listen.icepush.xml.jsf HTTP/1.1

          I find it interesting that the browser requests all the resources loaded by the page, but not the page itself.

          The initial page response contains no caching instructions (shouldn't that make the page uncacheable?):

          [11.644 13:47:06.799s]
          HTTP/1.1 200 OK
          Server: Apache-Coyote/1.1
          X-Powered-By: JSF/2.0
          Content-Type: application/xhtml+xml;charset=UTF-8
          Transfer-Encoding: chunked
          Date: Tue, 14 May 2013 20:47:06 GMT

          2000
          <!DOCTYPE html>
          <html xmlns="http://www.w3.org/1999/xhtml"><head>
          <title>ICEfaces Mobile Showcase</title>
          <link href="./resources/images/touch-icon-iphone.png" rel="apple-touch-icon" />
          <link href="./resources/images/touch-icon-ipad.png" rel="apple-touch-icon" sizes="72x72" />
          <link href="./resources/images/touch-icon-iphone-retina.png" rel="apple-touch-icon" sizes="114x114" />

          Show
          Greg Dick added a comment - It appears that the browser is not reloading the page. Here's a series of requests generated by the browser when I click on the google maps link: 3.8051 10:15:57.321s] – POST /mobileshowcase/showcase.jsf HTTP/1.1 [3.8758 10:15:57.392s] – [4.3241 10:15:57.840s] – GET /mobileshowcase/javax.faces.resource/jsf.js.jsf?ln=javax.faces&stage=Development&v=3_4_0_130514 HTTP/1.1 [4.3432 10:15:57.859s] – GET /mobileshowcase/javax.faces.resource/bridge.uncompressed.js.jsf?ln=ice.core&v=3_4_0_130514 HTTP/1.1 [4.3694 10:15:57.886s] – GET /mobileshowcase/javax.faces.resource/icepush.uncompressed.js.jsf?ln=ice.push&v=3_4_0_130514 HTTP/1.1 [4.4080 10:15:57.924s] – GET /mobileshowcase/javax.faces.resource/component.js.jsf?ln=org.icefaces.component.util&v=3_4_0_130514 HTTP/1.1 [4.4407 10:15:57.957s] – GET /mobileshowcase/javax.faces.resource/bb10.css.jsf?ln=org.icefaces.component.skins&v=3_4_0_130514 HTTP/1.1 [4.4762 10:15:57.992s] – GET /mobileshowcase/javax.faces.resource/icemobile_thumb.png.jsf?ln=images&v=3_4_0_130514 HTTP/1.1 [4.5004 10:15:58.016s] – GET /mobileshowcase/javax.faces.resource/showcase.css.jsf?ln=css&v=3_4_0_130514 HTTP/1.1 [4.6085 10:15:58.125s] – GET /mobileshowcase/javax.faces.resource/org.icefaces.component.skins/bb10/back.png.jsf?v=3_4_0_130514 HTTP/1.1 [4.6177 10:15:58.134s] – GET /mobileshowcase/javax.faces.resource/org.icefaces.component.skins/bb10/icons-18-white.png.jsf?v=3_4_0_130514 HTTP/1.1 [4.6284 10:15:58.144s] – GET /mobileshowcase/javax.faces.resource/org.icefaces.component.skins/bb10/next.png.jsf?v=3_4_0_130514 HTTP/1.1 [4.6492 10:15:58.165s] – GET /mobileshowcase/javax.faces.resource/org.icefaces.component.skins/bb10/fontawesome-webfont.ttf.jsf HTTP/1.1 [4.6666 10:15:58.183s] – GET /mobileshowcase/javax.faces.resource/org.icefaces.component.skins/bb10/icons-36-white.png.jsf?v=3_4_0_130514 HTTP/1.1 [4.7073 10:15:58.223s] – GET /mobileshowcase/javax.faces.resource/images/icons-white.png.jsf HTTP/1.1 [4.8556 10:15:58.372s] – POST /mobileshowcase/javax.faces.resource/listen.icepush.xml.jsf HTTP/1.1 I find it interesting that the browser requests all the resources loaded by the page, but not the page itself. The initial page response contains no caching instructions (shouldn't that make the page uncacheable?): [11.644 13:47:06.799s] HTTP/1.1 200 OK Server: Apache-Coyote/1.1 X-Powered-By: JSF/2.0 Content-Type: application/xhtml+xml;charset=UTF-8 Transfer-Encoding: chunked Date: Tue, 14 May 2013 20:47:06 GMT 2000 <!DOCTYPE html> <html xmlns="http://www.w3.org/1999/xhtml"><head> <title>ICEfaces Mobile Showcase</title> <link href="./resources/images/touch-icon-iphone.png" rel="apple-touch-icon" /> <link href="./resources/images/touch-icon-ipad.png" rel="apple-touch-icon" sizes="72x72" /> <link href="./resources/images/touch-icon-iphone-retina.png" rel="apple-touch-icon" sizes="114x114" />
          Hide
          Greg Dick added a comment -

          The Android Webkit browser in BB10 runtime is caching the initial page. In our navigationModel for that application, the navigation outcome is a redirect to the main page. Various pieces of code insert google maps javascript into the page if the current navigation target is 'gmap'. The container is requesting all of the resources for the gmaps page, but not the main menu page itself, which means the javascript insertions haven't taken place.

          The solution is to append an extra request parameter into the redirect URL, which forces the container to request the main page. This fixes navigation to the page, but it is unclear if the page itself will work in the Android container in BB10 runtime, as Google maps is not supported inside the BB10 runtime. It's unclear what elements from the Google maps libraries in question this demonstration actually uses.

          Show
          Greg Dick added a comment - The Android Webkit browser in BB10 runtime is caching the initial page. In our navigationModel for that application, the navigation outcome is a redirect to the main page. Various pieces of code insert google maps javascript into the page if the current navigation target is 'gmap'. The container is requesting all of the resources for the gmaps page, but not the main menu page itself, which means the javascript insertions haven't taken place. The solution is to append an extra request parameter into the redirect URL, which forces the container to request the main page. This fixes navigation to the page, but it is unclear if the page itself will work in the Android container in BB10 runtime, as Google maps is not supported inside the BB10 runtime. It's unclear what elements from the Google maps libraries in question this demonstration actually uses.
          Hide
          Greg Dick added a comment -

          This was an issue with all Android 2.3 OS WebView objects, not just BB10. The notion of postpending a random request parameter to defeat caching worked for all cases

          Show
          Greg Dick added a comment - This was an issue with all Android 2.3 OS WebView objects, not just BB10. The notion of postpending a random request parameter to defeat caching worked for all cases

            People

            • Assignee:
              Greg Dick
              Reporter:
              Greg Dick
            • Votes:
              0 Vote for this issue
              Watchers:
              1 Start watching this issue

              Dates

              • Created:
                Updated:
                Resolved: