移动设备上的GWT开发模式还是超级开发模式?

时间:2013-11-20 14:56:03

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

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

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

4 个答案:

答案 0 :(得分:1)

  

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

是。你是对的。很重要。您需要使用GWT插件来调试IDE中的字节代码。

不幸的是,目前还没有解决方法,至少在我的知识面前。

如果你想调试Javascript,由GWT生成也很困难,因为默认情况下GWT编译器会生成obfuscated code.

如果您想在compiler options

尝试使用java scriptlook

答案 1 :(得分:1)

如果您正在使用 MGWT 库(http://code.google.com/p/mgwt/),则可以轻松地从移动设备重新编译GWT模块,这样您就可以轻松使用用户界面。

导入此类

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

在您的EntryPoint类中调用此方法

SuperDevModeUtil.showDevMode();

您可以在article Daniel Kurka上找到有关Super Dev Mode

的详细信息

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

答案 2 :(得分:0)

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

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

书签的网址类似于

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,您可以使用this之类的URLDecoder对其进行解码。它会像

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网址”。这可能也适用于iPhone等非Android设备。

答案 3 :(得分:0)

旧帖子,但是对于任何寻找如何为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

现在使用您的电脑导航到这个网站,并将devmode打开。

当您现在使用移动设备导航到同一网站时,它会自动重新编译应用程序,您将在移动设备上使用您的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工具;和设备必须由ADB检测