1

私の状況、私が見つけた考えられる解決策を説明し、その後にいくつかの質問をします。

フロントエンドに Monaca Cloud IDE と Onsen を使用して、Cordova クロス プラットフォーム アプリを作成しました。次のように実装された、アプリでスライダーを使用しています。

<input type = "range" .../>

これは、iOS および一部のバージョンの Android では問題なく動作しますが、古いバージョンの Android では問題が発生しています。私が見つけた問題には、javaScript の touchStart、touchEnd、および touchHover イベントが発生しない、サム スライダーが消える、フリーズしたようにスライダーが何もしないなどがあります。私は少し読んだことがありますが、収集できることから、古いバージョンの Android ブラウザーでは javaScript と CSS に問題があります。

可能な解決策:

私は 2 つの可能な解決策を見てきました (どちらも実装しようとはしていません)。そのうちの 1 つは CrossWalk Web ビュー プラグインで、もう 1 つは In-App-Browser プラグインです。In-App-Browser がどのブラウザーを使用するかはわかりませんが、それがシステム ブラウザーでない場合は、考えられる解決策になるはずです。私が Crosswalk で抱えている大きな問題は、少なくとも 4 ~ 5 倍以上のように、それがない場合よりもアプリがはるかに大きくなるという事実です。参考までに、私のアプリは約 4MB しかありません。

一般的な注意点として、私はプラグインよりもライブラリを好みます。少なくとも私にとっては、実装が簡単だからです。

質問:

  • まず第一に、私が見つけた問題よりも良い解決策はありますか?

  • ユーザーがそれぞれのアプリ ストアからアプリをインストールするときに、条件付きでプラグイン/ライブラリをインストールする方法はありますか? 4.4 より前のバージョンの Android を実行している Android デバイスにアプリがインストールされている場合に、Crosswalk を使用する可能性を検討している場合 (実際にそれが最終的に実装するソリューションである場合) を検討しているためです。

  • In-App-Browser はどの Web ブラウザーを使用しますか? システムのデフォルトのもの?

  • アプリのソース コードにライブラリやプラグインを含めず、CDN を使用してホストする場合、アプリにキャッシュしますか、それともアプリが起動するたびに取得する必要がありますか。

アドバイス、提案、および/または解決策は大歓迎です。

ありがとうございました。

4

1 に答える 1

1

そのウィジェットは、古い Android バージョン (< 4.2) では完全にはサポートされていません。http://caniuse.com/#feat=input-range を確認してください

Crosswalk で問題は解決しますが、apk のサイズが大きいことが予想されます (最後にコンパイルしたアプリは 41 MB でした)。これは、XWalk を使用すると、事実上完全なクロム ブラウザが含まれているために発生します。ただし、コアは apk 間で共有できますが、1 つの apk の場合、40 MB 以上にとどまります。

In-App-Browser は、標準の WebView ブラウザー エンジンを使用します。したがって、それ以上のものは得られません (実際、得られるものは少なくなります)。

ライブラリまたは css にローカル リソースの代わりにリモート リソース URL を使用すると、初回はダウンロードされますが、そこからキャッシュがヒットします (CordovaActivity で意図的に無効にしない限り)。これを Google マップに使用しましたが、問題なく動作します。

入力範囲に基づいたウィジェットを別のウィジェットに置き換えたいと思います。Bootstrap や jQuery にはおそらく何かが存在するでしょう。

于 2016-01-14T14:47:06.403 に答える