禁用PhoneGap中的文本选择

stm*_*tmn 32 android textselection cordova

是否可以禁用文本选择以使PhoneGap应用程序更像普通本机应用程序?

像这样的东西:

document.onselectstart = function() {return false;}
Run Code Online (Sandbox Code Playgroud)

要么:

* { 
user-select: none;
-moz-user-select: -moz-none;
-khtml-user-select: none;
-webkit-user-select: none;
}
Run Code Online (Sandbox Code Playgroud)

或许多其他事情都行不通.

Thi*_*iff 57

把它打开html,不是*,对我有用:

html {
    -webkit-user-select: none;
}
Run Code Online (Sandbox Code Playgroud)

  • 也适用于Cordova,在Android上测试过 (2认同)

小智 32

我全神贯过地寻求帮助.这最终对我有用.

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;
            }
        });
    }
}
Run Code Online (Sandbox Code Playgroud)

setOnClickListener是神奇的.确保你在调用super.loadUrl之后再进行此操作.

当然,这会禁用整个应用程序的文本选择,但我很好,我现在没有任何其他方法.

我不确定这个的完整含义,但我确实利用了JqueryMobile事件"taphold",它仍然可以正常工作.我相信这可以通过长时间点击appView(托管你的HTML应用程序)并阻止它冒泡来实现.


小智 8

除了ThinkingStiff提到的内容,我还使用以下内容删除任何突出显示/复制和粘贴

-webkit-touch-callout: none;
-webkit-tap-highlight-color: rgba(0,0,0,0); 
Run Code Online (Sandbox Code Playgroud)


小智 8

这也会奏效.

<body oncontextmenu="return false" ondragstart="return false" 
onselectstart="return false">
Run Code Online (Sandbox Code Playgroud)


atu*_*tri 6

添加这个并享受。也适用于 iOS。

<style type="text/css">
*:not(input,textarea) {
    -webkit-touch-callout: none;
    -webkit-user-select: none; /* Disable selection/Copy of UIWebView */
}
</style>
Run Code Online (Sandbox Code Playgroud)

  • 小更正,规则的签名应该是:`*:not(input):not(textarea)` (6认同)