【问题标题】:GWT Dev Mode or Super Dev Mode on Mobile Devices?移动设备上的 GWT 开发模式还是超级开发模式?
【发布时间】:2013-11-20 14:56:02
【问题描述】:

是否可以在我的 iPhone 浏览器上调试 GWT 移动应用程序?

我知道我无法安装浏览器开发者插件,但有其他解决方法吗?

【问题讨论】:

    标签: java javascript gwt gwt-dev-mode gwt-super-dev-mode


    【解决方案1】:

    我知道我无法安装浏览器开发者插件??

    是的。你是对的。一个很大的问题。你需要有 GWT 插件来调试你的 IDE 中的字节码。

    不幸的是,至少据我所知,目前还没有解决方法。

    如果要调试Javascript,用GWT生成也挺难的,因为默认GWT编译器会生成obfuscated code.

    如果你想用java scriptlook 试试compiler options:

    【讨论】:

      【解决方案2】:

      如果您使用 MGWT 库 (http://code.google.com/p/mgwt/),您可以轻松地从移动设备重新编译 GWT 模块,以便调试用户界面外观。

      导入这个类

      import com.googlecode.mgwt.ui.client.util.SuperDevModeUtil;
      

      在您的 EntryPoint 类中调用此方法

      SuperDevModeUtil.showDevMode();
      

      您可以在Daniel Kurka 的article 中找到有关Super Dev Mode 的更多详细信息

      但是您不能通过在 Java 代码中添加断点来逐步进行。

      【讨论】:

        【解决方案3】:

        GWT Super Dev 模式适用于 Android 移动设备,因为它不再需要任何浏览器插件。

        您需要对现在打开和关闭超级开发模式的书签提供一些支持。如果您的浏览器无法做到这一点,您可以执行自己的 JavaScript 来激活该页面上的超级开发模式,而不是单击小书签。

        书签的 URL 看起来像

        javascript:%7B%20window.__gwt_bookmarklet_params%20%3D%20%7B'server_url'%3A'http%3A%2F%2F192.168.55.55%3A1234%2F'%7D%3B%20var%20s%20%3D%20document.createElement('script')%3B%20s.src%20%3D%20'http%3A%2F%2F192.168.1.5%3A9876%2Fdev_mode_on.js'%3B%20void(document.getElementsByTagName('head')%5B0%5D.appendChild(s))%3B%7D
        

        这本质上是编码的 JavaScript,你可以使用 URLDecoder 像this 来解码它。它会像

        javascript:
          { 
            window.__gwt_bookmarklet_params = 
              {'server_url':'http://192.168.55.55:1234/'}; 
            var s = document.createElement('script'); 
            s.src = 'http://192.168.1.5:9876/dev_mode_on.js'; 
            void(document.getElementsByTagName('head')[0].appendChild(s));
          }
        

        如果您在本机 Android 应用程序中运行 GWT 代码,则可以使用其 loadUrl 方法在 WebView 上执行此类 JavaScript,并且开发模式直接在您的应用程序内启动。

        否则,您可能会尝试以一种或另一种方式从您的设备访问此类“javascript URL”。这也可能适用于 iPhone 等非 Android 设备。

        【讨论】:

        • 如何使用 JavaScript 做到这一点?
        • 扩展试图解释更多。
        【解决方案4】:

        旧线程,但适用于任何寻求如何为 Android 设备执行此操作的答案的人。

        首先你必须使用 SuperDevMode。 启动 SuperDevMode (CodeServer) 时添加以下参数:

        -bindAddress 0.0.0.0
        

        所以你会有类似的东西

        -bindAddress 0.0.0.0 -logLevel INFO -port 9876 -launcherDir c:/inetpub/wwwroot/wawa be.abc.cba.wawa
        

        现在使用您的电脑导航到该网站并打开开发模式。

        当您现在使用移动设备导航到同一网站时,它将自动重新编译应用程序,您将在移动设备上使用 superDevMode 代码。

        现在,在使用 Android 设备时,您甚至可以使用 Chrome 远程工具来查看 DOM 树、控制台日志、网络流量、设置断点等等。 为此,您必须在桌面上启动 Chrome,并将其连接到您的移动设备。

        查看:https://developers.google.com/web/tools/chrome-devtools/remote-debugging/?utm_source=dcc&utm_medium=redirect&utm_campaign=2016q3 了解如何操作。 请注意,为此,您的设备必须通过 USB 连接;必须启用 USB 调试;必须安装 Android SDK 工具;并且设备必须被 AD​​B 检测到

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2021-09-07
          • 2013-08-22
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多