1

変更されたVNCビューアアプレット(VNC =リモート表示プロトコル)のラッパーを実装して、(javascriptを使用して)ユーザーエクスペリエンスを向上させようとしていますが、回転の処理で問題が発生しました。

アプレットの幅/高さは固定されています(1)-したがって、ユーザーがデバイスを回転させると、アプレットは画面をオーバーローするか、サイズが変更されます。

+------------+   +-------+         +-------+
|............|   |.......|...      |.......|
|.         X.|   |.      | X. or   |.    x.|
|.          .| > |.      |  .      |.......|
|............|   |.......|...      |       |
+------------+   |       |         |       |
                 |       |         |       |
                 +-------+  :(     +-------+ :(

でも私はしたい....

+------------+   +-------+
|............|   |.......|
|.         X.|   |.     .|
|.          .| > |.     .|
|............|   |.     .|
+------------+   |.    X.|
                 |.......|
                 +-------+  :)

javascriptの画面寸法の変化から自動回転を検出できますが、Javaで記述されている場合は自動回転を抑制できますが、どちらも目的の結果を達成していません。具体的には、

  • デバイスを回転させても、ディスプレイの向きは変わりません。
  • 私のJavaScriptは、デバイスが回転したことを検出し、アプレットのコンテンツの方向を変更します(OVCメッセージを送信してvncserverでxrandrを実行します)。

私は、JavaScriptに公開された個別のアプレットとして回転の検出を実装すること、またはWebビューを介してページを実装することを完全に嫌うわけではありませんが、そうしたくないと思います。

HTMLアプリのマニフェストファイルで向きをロックすることは可能ですか?

向きがロックされているときにjavascriptを使用して回転を検出することは可能ですか?

これを解決する別の方法はありますか?

1-これは基礎となるプロトコルの制限です。私はすでにJavaアプレットに変更を加えています。サーバーを書き直す必要はありません!

アップデート

ほとんどのバージョンのVNC(noVNCを含む)にxrandrの問題があることを認識しています。

誰かがブラウザページの自動再方向付けを(Webビューでアプレットを使用せずに)抑制する方法を教えてくれれば、少なくとも答えの一部が得られます。

4

2 に答える 2

1

ここでポイントを逃している可能性があるかどうかは完全にはわかりませんが、次の行をマニフェストに追加することで、回転またはキーボードのスライドアウト時にデバイスが再レイアウトされないようにすることができます。

android:configChanges="keyboardHidden|orientation"

次に、私が正しく理解している場合は、変更が発生したら、JavaScript でアプレット内のテキストを単純に回転させることができます。

これにより、ウィンドウを上で示した方向とサイズに維持するという望ましい効果が得られ、テキストの方向を修正するのは自分次第です。

于 2012-07-02T16:36:16.847 に答える
0

これを見てください、誰かがすでにこの問題を解決しているようです: https://stackoverflow.com/a/2307936/375929

UPD Afaik、javascriptから向きを強制することはできませんが、回転を検出し、Webアプリで補完的な回転に反応できるため、Webアプリの向きはユーザーにとって同じままです。

于 2012-07-02T13:30:52.273 に答える