テキスト選択を無効にして、PhoneGapアプリを通常のネイティブアプリに類似させることはできますか?
このようなもの:
document.onselectstart = function() {return false;}
または:
* {
user-select: none;
-moz-user-select: -moz-none;
-khtml-user-select: none;
-webkit-user-select: none;
}
または、他の多くのものが機能しません。
私はこれについて助けを求めて一目見ました。これでようやくうまくいきました。
public class MainActivity extends DroidGap {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
super.loadUrl("file:///Android_asset/www/index.html");
super.appView.setOnLongClickListener(new View.OnLongClickListener() {
public boolean onLongClick(View v) {
return true;
}
});
}
}
SetOnClickListenerが魔法のようなものです。これをsuper.loadUrlへの呼び出しの後に置いてください。
もちろん、これによりアプリ全体のテキスト選択が無効になりますが、それでも問題ありません。今のところ、他の方法はありません。
これの完全な影響についてはまだわかりませんが、私はJqueryMobileイベント「taphold」を利用していますが、それでも問題なく機能します。これは、appView(HTMLアプリをホストする)での長いクリックを処理し、泡立つのを防ぐことで機能すると思います。
*
ではなくhtml
に置くと、うまくいきます:
html {
-webkit-user-select: none;
}
ThinkingStiffが言ったことと同様に、ハイライト/コピーと貼り付けを削除するために次も使用します
-webkit-touch-callout: none;
-webkit-tap-highlight-color: rgba(0,0,0,0);
これも機能します。
<body oncontextmenu="return false" ondragstart="return false"
onselectstart="return false">
これを追加してお楽しみください。 iOSでも動作します。
<style type="text/css">
*:not(input,textarea) {
-webkit-touch-callout: none;
-webkit-user-select: none; /* Disable selection/Copy of UIWebView */
}
</style>
私は以下のコードを使用し、AndroidとiOSデバイス、およびエミュレーター/シミュレーターで正常に機能しています:
* {
-webkit-user-select: none;
-khtml-user-select: none;
-moz-user-select: none;
-ms-user-select: none;
user-select: none;
}
input, textarea {
-webkit-user-select: auto !important;
-khtml-user-select: auto !important;
-moz-user-select: auto !important;
-ms-user-select: auto !important;
user-select: auto !important;
}
最近Android 4.4 KitKatに更新され、タップホールド(長押し)でEdittextが表示される問題が解決されました。どうやら、jquery mobileとAndroid 4.4。私はカスタムaosp romを使用しているので、公式リリースではテストしていませんが、4.4リリースでも同様に機能することを期待(および期待)しています。以下に投稿したonclickを使用して。
古いICS= ROM(4.0.4カスタムROMでのみテスト))で機能する(考えられる問題を伴う)古い方法。
スクロールバーを追加することにより
例:
<div id="scroll">content</div>
<style>
#scroll {
height: 100%;
width: 100%;
}
</style>
また、phonegapとjquery mobileのEditholdがタップホールド(長押し)でポップするのを無効にします。これが競合を引き起こすかどうかはまだ分かりませんが(ソートを検討しているonclickでいくつかの影響があるようです)、通常のテキストでうまく機能するはずです。---Android 4.4もうスクロールする必要はありません(投稿の上部を参照)
私にとってこれは最高でした:
-webkit-tap-highlight-color: rgba(0,0,0,0);
tap-highlight-color: rgba(0,0,0,0);
私のケースはpixi.jsで起こりました。
plugins.interaction.autoPreventDefault = true;