問題タブ [handhelddevice]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
html - ハンドヘルド デバイスに適した Web サイトを構築する
固定幅の Web サイトをハンドヘルド デバイスに適した Web サイトに変換する方法を採用したいと考えています。誰でも、どの方法が最適かを提案できますか。ウェブサイトの読み込み時間を犠牲にしてはならないことを考慮してください。レスポンシブ Web デザインは機能するはずですが、調査の結果、レスポンシブ Web デザインで使用されるレスポンシブ画像が Websie の読み込み時間を損なう場合があることがわかりました。
screen - cssメディアタイプ「ハンドヘルド」はどのパラメータを気にしますか?
ハンドヘルドデバイス(携帯電話など)か、ラップトップ、固定PC、タブレットなどの大画面デバイスかによって、ページのスタイルを変更する必要があります。
css max-widthクエリなどで解決策を検出できることは知っていますが、それは説得力がありません。今日のスマートフォンはそのような高解像度の画面を持っていることが主な理由です。IEのSonyXperiaSは、720p x 1280の画面を備えていますが、わずか4,3 "です。これにより、通常のコンピューター画面では読み取れる10pxフォントは、小さすぎて読み取れなくなります。
したがって、それが小画面デバイスであるかどうかを知るには、解像度だけでなく、もう少し知る必要があります。(そして、media = "handheld" cssスタイルが進むべき道だと思います。間違っている場合は訂正してください)。
つまり、cssメディアタイプ「ハンドヘルド」はどのパラメータを気にしますか?
- デバイスの画面サイズ?
- ブラウザのウィンドウサイズ?
- 帯域幅?
- デバイスが「ハンドヘルド」であるかどうか、またはクライアントから渡されたパラメータだけではないかどうかの情報ですか?
- タブレットは「ハンドヘルド」デバイスとして含まれていますか?
等
ありがとうございました!
c#-2.0 - CK30: BarcodeReader() を使用した後、キーボードが機能しなくなりました
C# コンパクト フレームワーク 2.0 (windows mobile 6.1) の 2D リーダーを備えた Intermec ハンドヘルド デバイス CK30 用に開発しています。
バーコードを使用するたびに、キーボードが機能しなくなります。理由はありますか?
コードはこちら。最初のセクションは、バーコード リーダーを構成するクラスです。2 番目のセクションは、バーコード リーダーを使用してテキスト ボックスに入力するフォームです。
バーコードリーダーで何かを読み取った後、キーボードが機能しなくなります...
c# - UserAgent がモバイルからのものではないことを検出する
条件 こんにちは、現在、クライアントのリクエストがモバイルからのものかどうかを検出する機能があります。機能は以下の通りです。
問題: これではハンドヘルド デバイスを検出するには不十分なので、インターネット経由で文字列のリストを取得し、それが Userstring に含まれているかどうかを比較します
デバイスが増加し続けると、このリストは長くなります
状態を逆転させたい。要求がハンドヘルド デバイスからではなく、PC またはラップトップからのものかどうかを検出したい。そうする方法はありますか?それとも私は間違った方法で考えていますか?
deployment - CE アプリが実行を拒否するのはなぜですか?
私は Windows CE アプリをしばらくの間 (1 年以上) 保守しており、その新しいバージョンを時々作成し、それらをハンドヘルド デバイスにコピーして、そこで新しいバージョンを実行しています。
しかし、今日、初めて新しい Windows CE アプリを作成しました。非常にシンプルなユーティリティです。
VS 2008 で作成するために、C# の「スマート デバイス プロジェクト」テンプレートを選択し、いくつかのコントロールと少しのコードを追加してビルドしました。
以下は、私が選択したオプションの一部です。
プロジェクトのビルドで生成された .exe をハンドヘルド デバイスの Program Files フォルダーにコピーしました。
...しかし、それは実行されません。それは間違った場所にありますか?いくつかの補助ファイルをコピーする必要がありますか? それを実行するために必要な他の種類のセットアップはありますか? または何?
アップデート
それほど多くはないので、誰かが私のコードに問題があると思われる場合に備えて、以下のすべてのコードを貼り付けます。
更新 2
これに基づいて、Program.cs が次のようになるように、グローバル例外ハンドラーをアプリに追加しました。
それでも、新しいビルドを実行しても何も表示されません。Jack Ruby が友好的に訪問した後、Lee Harvey Oswald とほぼ同じくらい冗長で、瞬間的に「フラッシュ」するだけです。
更新 3
問題はこれに関連している可能性がありますか?もしそうなら、それを解決する方法は?
既存のアプリの更新バージョンと、この真新しいシンプルなアプリの両方が実行を拒否する状況は、コーディング、ビルド、またはデプロイ プロセスのどこかに根本的な欠陥があることを示しています。
更新 4
これは最小限のユーティリティであるため、それ (および私の従来の、はるかに複雑な) アプリが機能しない理由は、プロジェクトのプロパティ、ビルド方法、必要なファイルがコピーされていないこと、または... ???
注: デスクトップ アイコンは「汎用」です (空白の白いフォームのように見えます)。これはおそらく問題を示していますが、何かが間違っていることを示しているのでしょうか、それともマイナーな (美学のみの) 問題でしょうか?
更新 5
[プロジェクト] > [プロパティ...] で、プラットフォームが「アクティブ (任意の CPU)」に設定され、プラットフォーム ターゲットが同じ (「アクティブ (任意の CPU)」) に設定されます。
これは間違っている、「x86」であるべきだと読みましたが、利用可能な「x86」オプションはありません - すべての CPU が唯一のものです...?!?
更新 6
[プロジェクト] > [プロパティ...] > [デバイス] で、[最新バージョンの .NET Compact Framework (Service Pack を含む) を展開する] にチェックが入っています。これはあるべき姿ですか?
更新 7
さて、これがすべての本当に奇妙な部分です:
Motorola/Symbol 3090 および 3190 ハンドヘルド デバイスで実行する必要がある 2 つの CF/CE アプリがあります。
One is this simple utility discussed above. I find that it actually does run on one of the devices (the 3190, FWIW). So it runs on one device, but not on the other.
ただし、もう 1 つの (レガシー) .exe は逆です。3090 (ユーティリティが起動さえしない) では実行されますが、3190 では実行されません。
したがって、ユーティリティのニーズは 3190 で満たされ、レガシー ユーティリティのニーズは 3090 で満たされます。ただし、レガシー アプリの新しいバージョンはどちらのデバイスでも実行されません。
私は困惑しています。ケイシー・ステンゲルが彼の 3 人のキャッチャーについて語ったとき、次のように感じたに違いありません。 "
更新 8
3190 には新しいバージョンの CF がインストールされています。新しいアプリと古いアプリの両方が、新しい CE を搭載した新しいデバイスで実行されるはずですが、そうではありません。新しいフレームワークに対して/のために構築されたものだけが実行されます...
更新 9
3090 の外観は次のとおりです。
更新 10
そのため、2 つの exe があります。1 つはデバイス上で実行され (両方とも現在)、もう 1 つはどちらのデバイスでも実行されません。2 つの exesw はほとんど同じように見えます。それらを次の 3 つのツールと比較しました。Red Gates の .NET Reflector。JetBrains の dotPeek と Dependency Walker。
これが私が見つけたものです:
依存関係ウォーカー どちらも、依存関係の欠落について同じエラーがあるようです (依存アセンブリと同じフォルダーにそれらを持っていなかったことがおそらく問題です)
.NET Reflector 非作業ファイルには、作業ファイルにはない次のエントリがあります。
これが問題ですか? もしそうなら、どうすれば変更できますか?
JetBrains dotpeekEXE の作業コピーの参照はすべてバージョン1.0.50000.0です
動作していない exe には、参照の同一のリストと同じバージョン番号があります。
ただし、次の違いがあります。
動作している .exe の場合、dotPeek は「1.4.0.15、msil、Pocket PC v3.5」と述べています。動作していない .exe について、dotPeek は「1.4.0.15、msil、.Net Framework v4.5」と述べています。
これが問題ですか? もしそうなら、動作していない .exe を動作するものと一致するように変更するにはどうすればよいですか?
これは主に、プロジェクトの動作していない (新しい) バージョンに「4.5」文字列が存在する場所が見当たらないためです。dotPeek はどこでその情報を取得できますか?
更新 11
問題はこれら 2 つの MessageBox.Show() の間のどこかにあることがわかりました。
更新 12
より具体的には、何らかの形で無限のループが行われています。ハンドヘルドデバイスに「ent」ピルをマッシュすることで(ボタンがどのように見えますか - 「ロゼンジ」) - それは、2つの方法のMessagebox.show()sをデバッグするように、Gerbilsのタップダンスのように聞こえます。そして、AD Infinitum AD(文字通り)吐き気)。
arm - CF バージョン 2 をインストールするには、ハンドヘルド デバイスにどの cab を展開する必要がありますか?
ここで読んだ内容に基づいて、CF バージョン 2 をハンドヘルド デバイスにインストールするには、次の cab ファイルのいずれかをコピーする必要があります。
…でもどれ?
問題のデバイスは Symbol 3090 で、現在、CF バージョン 1.0.3316.00 (1.0 SP2) のみがインストールされています。デバイスの OS バージョンは 05.00.1400 です
デバイスの CPU は、同様のデバイス (Motorola 3190) が搭載していると述べているため、おそらく「ARMV4I」です。
アップデート
ここで「このリンク」をクリックすると、ここに表示される内容に基づいています。
-- または -- お使いのデバイスに Windows Mobile 5 以降が搭載されている場合は、このリンクをクリックして、ファイルをコンピューターのデスクトップに保存します。
...「NETCFv2.wm.armv4i.cab」がおそらく最良の選択のようです。
反論はありますか?
更新 2
私はそのファイルと思われるファイルをコピーし、デバイス上でクリックしましたが、
サム L. クレメンスの輝かしい記憶の中で何が起こっているのでしょうか?!?
更新 3
次に、上記のリンクから他のファイルをコピーしましたが、これはわずかに異なり (2.14MB ではなく 2.12MB)、実行しようとしたところ、上記と同じエラー メッセージが表示されました。
更新 4
最後のリンクからインストールしようとすると、次のように表示されます。
更新 5
実際、私が本当に必要としているのは、デバイスのコールド ブート後に CF バージョン 1 をインストールすることであることがわかりました...しかし、CF のバージョン 1 がまだ利用可能かどうかはわかりません。これは既存の .exe が実行される唯一のバージョンですが、私の PC にはバージョン 2 と 3.5 の cab ファイルしかありません...???
更新 6
.exe の最新バージョン (ビルドしてコンパイルしますが、どちらのデバイスでも実行されません) では、参照領域に 3 つの mscorlib があります。バージョンは次のとおりです。
それらはすべて同じ公開鍵トークンを持っています (スクリーンショットに示されているものと同じ)
他の唯一のマルチリファレンスは System で、バージョン 2 と 3.5 の両方があります。
また、System.Xml の下には、綴りが異なりますが、3 つの coredll.dll があります。
(それらの情報はありません...???)
更新 7
NETCFv2.wce4.ARMV4.cab を 3090 にコピーしました。
デバイスで2クリックしましたが、これが得られました:
ということで、撤退しました(「いいえ」を選択)。
したがって、偶発的なハンドヘルド開発者の苦労を衰えることなく続けます。
更新 8
プロジェクトは、フレームワーク バージョン == v2.0、プラットフォーム == Windows CE、ターゲット デバイス == Windows Mobile 6 クラシック エミュレーター (私が持っている数少ないエミュレーターの選択肢の 1 つ) に設定されており、出力は、ARMV4i が実行されていることを示しています。展開:
また、エミュレータで .exe を実行すると、「エラー - Platypus.exe で予期しないエラーが発生しました。このプログラムを終了して再起動するか、詳細を選択してください。このアプリケーションには、新しいバージョンの MS が必要です。 .NET Compact Framework が、このデバイスにインストールされているバージョンよりも優れています。」
[詳細] ボタンを選択すると、「TypeLoadException このアプリケーションには、このデバイスにインストールされているバージョンよりも新しいバージョンの MS .NET Compact Framework が必要です。 」という精神的苦痛が増大します。