teratail header banner
teratail header banner
質問するログイン新規登録

質問編集履歴

3

WebEngineのUserAgentについて、気づいた点を追記しました。

2017/07/04 06:12

投稿

serona
serona

スコア25

title CHANGED
File without changes
body CHANGED
@@ -93,4 +93,22 @@
93
93
  }
94
94
  });
95
95
 
96
- ```
96
+ ```
97
+ ##追記
98
+ 調べてみたところ、どうやら、
99
+ 起動の仕方?によってWebEngineのUserAgentが違っているようです。
100
+ webEngine.getUserAgent();を出力したところ、
101
+
102
+ Eclipseから起動した時は、
103
+ > Mozilla/5.0 (Macintosh; Intel Mac OS X) AppleWebKit/538.19 (KHTML, like Gecko) JavaFX/8.0 Safari/538.19
104
+
105
+ 実行可能JARとしてエクスポートして、ダブルクリックで起動した時は
106
+ > Mozilla/5.0 (Macintosh; Intel Mac OS X) AppleWebKit/602.1 (KHTML, like Gecko) JavaFX/8.0 Safari/602.1
107
+
108
+ となっている事に気が付きました!!
109
+ これも何か関係あるのかな、と思っています。
110
+ > webEngine.setUserAgent("Mozilla/5.0 (Macintosh; Intel Mac OS X) AppleWebKit/538.19 (KHTML, like Gecko) JavaFX/8.0 Safari/538.19")
111
+
112
+ こちらを記述して書き換えてみても、状況は変わらないようですが…
113
+ 解決は難しいのでしょうか…?><
114
+ 自分でも調べながら気長に待っておりますので、どなたかご回答頂けるとうれしいです。

2

検証中、勘違いしていたところが見つかったので、該当する記述を削除しました。

2017/07/04 06:12

投稿

serona
serona

スコア25

title CHANGED
File without changes
body CHANGED
@@ -8,7 +8,6 @@
8
8
  できれば、Eclipse上で実行しているときと全く同じように
9
9
  実行可能JARファイルでもアプリケーションを動かしたいのですが
10
10
  そのためにどうすればいいのか分からない状況です。
11
- (実行可能JARで動作するときの仕様に合わせてコードを書き直すのはかなりつらいので…;;)
12
11
 
13
12
  あと、Macのターミナルから、「java -jar ○○.jar」で実行した時と
14
13
  直接JARファイルをダブルクリックして実行したときも、また動作が違うようです。
@@ -70,14 +69,7 @@
70
69
  WebView(webviewTest)、ProgressIndicator(progressTest)、Label(lblTest)があるとして、
71
70
  Workerが、Worker.State.SUCCEEDEDになったら、progressTestを非表示にする、というようにしたいのですが
72
71
  Eclipseで実行した時と、実行可能JARファイルとしてエクスポート後に実行した時とで、WebEngineの動作が違うらしく
73
- 実行可能JARとして実行すると、Workerがなかなか「SUCCEEDED」になりません。(SCHEDULEDかRUNNINGになっているようです)
72
+ 実行可能JARとして実行すると、Workerがほぼ全く「SUCCEEDED」になりません。(SCHEDULEDかRUNNINGになっているようです)
74
-
75
- また、WebEngineで表示しているドキュメントをテキスト形式にして、出力して確認してみるのですが
76
- やはり、Eclipseで実行した時に取得して出力したものと、
77
- 実行可能JARファイルで実行した時に取得して出力したものは、若干中身が変わっていて
78
- webEngine.executeScript("var $el = document.getElementsByClassName(\"☆\"); $el[0].href;");
79
- のところで
80
- Eclipseでは取れていたURLが、実行可能JARとしてエクスポートすると、取れなくなってしまいました。
81
73
  これを何とか、Eclipseで実行していたときと同じような動作にしたいのです。
82
74
  ```Java
83
75
  webEngine = webviewTest.getEngine();
@@ -89,7 +81,6 @@
89
81
  if (webEngine.getLoadWorker().getState().equals(State.SUCCEEDED)) {
90
82
  progressTest.setVisible(false);
91
83
  if (webEngine.getLocation().equals("http://○○○○")) {
92
- CommonMethod.logOutput(CommonMethod.docRead(webEngine));
93
84
  if ((boolean) webEngine.executeScript(
94
85
  "( document.getElementsByClassName(\"☆\").item(0) != null );")) {
95
86
  String testUrl = (String) webEngine.executeScript(
@@ -102,25 +93,4 @@
102
93
  }
103
94
  });
104
95
 
105
- ```
106
- CommonMethod.logOutput(CommonMethod.docRead(webEngine));の部分ですが、
107
- 以下のメソッドで、現在WebEngineで表示しているドキュメントをテキストで取得しておき
108
- アプリケーション終了時に、txtファイルとして出力するという処理を行ってます。
109
- ```Java
110
- public static String docRead(WebEngine webEngine) {
111
- String xml = null;
112
- try {
113
- org.w3c.dom.Document doc = webEngine.getDocument();
114
- StringWriter sw = new StringWriter();
115
- TransformerFactory tfactory = TransformerFactory.newInstance();
116
- Transformer transformer = tfactory.newTransformer();
117
- transformer.setOutputProperty("encoding", "Shift_JIS");
118
- transformer.transform(new DOMSource(doc), new StreamResult(sw));
119
- xml = sw.toString();
120
- return xml;
121
- } catch (TransformerException e) {
122
- e.printStackTrace();
123
- return null;
124
- }
125
- }
126
96
  ```

1

記述に間違いがありました;;

2017/06/28 07:54

投稿

serona
serona

スコア25

title CHANGED
File without changes
body CHANGED
@@ -70,7 +70,7 @@
70
70
  WebView(webviewTest)、ProgressIndicator(progressTest)、Label(lblTest)があるとして、
71
71
  Workerが、Worker.State.SUCCEEDEDになったら、progressTestを非表示にする、というようにしたいのですが
72
72
  Eclipseで実行した時と、実行可能JARファイルとしてエクスポート後に実行した時とで、WebEngineの動作が違うらしく
73
- 実行可能JARとして実行すると、Workerが「SUCCEEDED」になりません。(SCHEDULEDかRUNNINGになっているようです)
73
+ 実行可能JARとして実行すると、Workerがなかなか「SUCCEEDED」になりません。(SCHEDULEDかRUNNINGになっているようです)
74
74
 
75
75
  また、WebEngineで表示しているドキュメントをテキスト形式にして、出力して確認してみるのですが
76
76
  やはり、Eclipseで実行した時に取得して出力したものと、