GWT应用程序未在IPhone伪浏览器(嵌入式浏览器)上运行

时间:2016-06-15 07:33:51

标签: ios iphone gwt gxt captivenetwork

我构建了一个部署在tomcat服务器上的GWT应用程序。我的应用程序旨在用作强制门户解决方案的登录网关。当设备连接到我们的wifi热点时,用户会重定向到我们的GWT应用程序,并会提示他们登录/注册,然后才能使用我们的wifi连接。

我使用Android设备做一些测试,一切顺利,GWT应用程序在Android伪浏览器中显示。但是当我们使用iOS设备(如iPhone 6等)进行一些测试时,事情变得奇怪,GWT应用程序没有在iOS伪浏览器中显示。每当我尝试连接到wifi热点并启用自动登录时,伪浏览器将出现在“设置”菜单中,并且只显示白色空白页。

enter image description here

此外,我试图在我的GWT应用程序中放置一些window.alert,首先在onModuleLoad中,其他在一些子模块中,当我再次测试时,没有提示单个警报。所以我假设甚至没有调用onModuleLoad。 我对这个问题有两个问题:

  1. 这个iOS伪浏览器叫什么?我需要这个伪浏览器名称/术语来搜索有关此浏览器的更多信息。这个伪浏览器是否可以独立启动而无需连接强制门户网站?
  2. 有没有人知道我的GWT应用程序在iOS伪浏览器中运行的解决方案或解决方法?
  3. 注意:我在GWT应用程序中使用mvp4g和gxt。

    更新1

    伪浏览器是一个系统浏览器,例如当我们尝试使用iOS设备连接到强制门户wifi时,在设置菜单中,系统将启动重定向到登录URL的本机或内部webview。我发布的屏幕截图是伪浏览器的一个例子。所以我使用的是真正的设备,而不是模拟器。 我可能知道这个问题的根本原因,但我找不到解决此问题的解决方法或解决方案。因此看起来我的GXT应用程序无法正常工作,因为在iOS伪浏览器中无法识别用户代理。我在尝试使用同一设备上的safari浏览器访问我的GXT应用程序时进行比较,用户代理是正确的。我附上了截图:

    伪浏览器: enter image description here

    iPhone Safari: enter image description here

    我试图在我的gwt.xml文件中覆盖gxt.user.agent,如下所示:

    <property-provider name="gxt.user.agent">        
        <![CDATA[{
                var ua = navigator.userAgent.toLowerCase();
                if (ua.indexOf('edge/') != -1) return 'edge';
                if (ua.indexOf('chrome') != -1) return 'chrome';
                if (ua.indexOf('trident') != -1 || ua.indexOf('msie') != -1) {
                    if ($doc.documentMode >= 11) return 'ie11';
                    if ($doc.documentMode >= 10) return 'ie10';
                    if ($doc.documentMode >= 9) return 'ie9';
                    if ($doc.documentMode >= 8) return 'ie8';
                    return 'ie10';
                }
                if (ua.indexOf('safari') != -1) {
                    if (ua.indexOf('version/3') != -1) return 'safari3';
                    if (ua.indexOf('version/3') != -1) return 'safari4';
                    return 'safari5';
                }
                if (ua.indexOf('gecko') != -1) {
                    if (ua.indexOf('rv:1.8') != -1) return 'gecko1_8';
                    return 'gecko1_9';
                }
                if (ua.indexOf('adobeair') != -1) return 'air';
                return 'safari5';
         }]]>
    </property-provider>
    

    但仍然没有为我工作,请帮助我。谢谢和问候。

0 个答案:

没有答案