DevMode は JavaScript にコンパイルされませんが、延期されたバインディング規則を尊重する必要があり、それらの多くはプロパティに基づいているuser.agent
ため、正しく設定する必要があります。
user.agent
プロパティ値は、いわゆる選択スクリプト(*.nocache.js
ファイル) で生成されたスクリプト スニペットによって決定されます。このスクリプトの内容は、GWT モジュールにある によって異なりますset-property
。
たとえば、GWT モジュールを でコンパイルすると<set-property name="user.agent" value="gecko1_8" />
、プロパティは の値にuser.agent
ハードコードされます。
後で DevMode を実行すると、既存の を上書きする必要があると判断されない限り、それが使用されます。が生成されたときに Chrome を使用してアプリを実行すると、次のようなエラーが発生します。gecko1_8
*.nocache.js
*.nocache.js
*.nocache.js
gecko1_8
com.google.gwt.core.client.JavaScriptException: (TypeError): Property 'user.agent' of object is not a function
いくつかのブラウザー用にコンパイルした後、DevMode を のみのモジュールで実行したgecko1_8
場合、DevMode は で見つかったプロパティ プロバイダーを使用して、使用されている実際のユーザー エージェント*.nocache.js
を判断し( Chrome の場合)、それを と比較します。モジュールから決定されたもの (ここでは にハードコードされています) であり、それらが一致しないことを警告します (そのため、アプリが機能しなくなる可能性があります: コードはたとえば使用されますが、Chrome では使用されるべきでした)。safari
gecko1_8
DOMImplMozilla
DOMImplSafari
したがって、これを修正するには、*.nocache.js
ファイルを削除して DevMode が新しいファイルを生成する必要があるようにするかuser.agent
、DevMode で使用するブラウザーと値が一致するモジュールを使用してアプリを再コンパイルします。