


android重写webview长按时选择文字然后点击搜索按钮的事件,默认是chrome接受点击事件,现在跳转到360搜索页面_html/css_WEB-ITnose
用这个FindWebView替换默认使用的webview就可以了,重写SelectedText 类里地 show方法 string data就是获取到的选中的文字
import android.annotation.SuppressLint; import android.annotation.TargetApi; import android.content.Context; import android.content.Intent; import android.os.Build; import android.text.TextUtils; import android.util.AttributeSet; import android.view.ActionMode; import android.view.ActionMode.Callback; import android.view.Menu; import android.view.MenuItem; import android.view.MotionEvent; import android.webkit.JavascriptInterface; import android.webkit.WebSettings; import android.webkit.WebView;
/** * 在webview的界面里面填加 长按界面时出现搜索按钮 点击搜索按钮跳转到搜索页面 * * @author 王训龙 360404113 * * 2014-8-8 上午11:39:16 */ @TargetApi(Build.VERSION_CODES.HONEYCOMB) public class FindWebView extends WebView { public Callback callback; private OnScrollChangedListener mOnScrollChangedListener; @SuppressWarnings("deprecation") public FindWebView(Context context, AttributeSet attrs, int defStyle, boolean privateBrowsing) { super(context, attrs, defStyle, privateBrowsing); init(); } public FindWebView(Context context, AttributeSet attrs, int defStyle) { super(context, attrs, defStyle); init(); } public FindWebView(Context context, AttributeSet attrs) { super(context, attrs); init(); } public FindWebView(Context context) { super(context); init(); } @TargetApi(Build.VERSION_CODES.KITKAT) @SuppressLint("SetJavaScriptEnabled") private void init() { WebSettings setting = getSettings(); setting.setJavaScriptEnabled(true); setting.setJavaScriptCanOpenWindowsAutomatically(true); addJavascriptInterface(new SelectedText(), "search"); if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT && Constants.DEBUG) { //支持webview调试 WebView.setWebContentsDebuggingEnabled(true); } } @Override public ActionMode startActionMode(Callback callback) { CustomizedSelectActionModeCallback customizedSelectActionModeCallback = new CustomizedSelectActionModeCallback( callback); return super.startActionMode(customizedSelectActionModeCallback); } @Override public boolean onTouchEvent(MotionEvent event) { return super.onTouchEvent(event); } public class CustomizedSelectActionModeCallback implements ActionMode.Callback { private Callback callback; public CustomizedSelectActionModeCallback(Callback callback) { this.callback = callback; } @Override public boolean onCreateActionMode(ActionMode mode, Menu menu) { return callback.onCreateActionMode(mode, menu); } @Override public boolean onPrepareActionMode(ActionMode mode, Menu menu) { return callback.onPrepareActionMode(mode, menu); } @Override public boolean onActionItemClicked(ActionMode mode, MenuItem item) { if (item == null || TextUtils.isEmpty(item.getTitle())) { return callback.onActionItemClicked(mode, item); } if (!item.getTitle().toString().contains("搜索") && !item.getTitle().toString().contains("search")) { return callback.onActionItemClicked(mode, item); } loadUrl("javascript:window.search.show(window.getSelection().toString());"); clearFocus(); return true; } @Override public void onDestroyActionMode(ActionMode mode) { callback.onDestroyActionMode(mode); } } public class SelectedText { @JavascriptInterface public void show(String data) { // TODO 这里获取选中的文字 Intent intent = new Intent(getContext(), SearchActivity.class); intent.putExtra(SearchActivity.TAG_SEARCH, data); getContext().startActivity(intent); } } private int dY; @Override protected void onScrollChanged(int l, int t, int oldl, int oldt) { super.onScrollChanged(l, t, oldl, oldt); int dy = t - oldt; dY += dy; if (mOnScrollChangedListener != null && Math.abs(dY) > 10) { dY = 0; mOnScrollChangedListener.onScroll(l, t, oldl, oldt); } } public interface OnScrollChangedListener { public void onScroll(int l, int t, int oldl, int oldt); } public void setOnScrollChangedListener(OnScrollChangedListener mOnScrollChangedListener) { this.mOnScrollChangedListener = mOnScrollChangedListener; } }
以上就是android重写webview长按时选择文字然后点击搜索按钮的事件,默认是chrome接受点击事件,现在跳转到360搜索页面_html/css_WEB-ITnose的内容,更多相关内容请关注PHP中文网(www.php.cn)!

Outils d'IA chauds

Undresser.AI Undress
Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover
Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool
Images de déshabillage gratuites

Clothoff.io
Dissolvant de vêtements AI

AI Hentai Generator
Générez AI Hentai gratuitement.

Article chaud

Outils chauds

Bloc-notes++7.3.1
Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise
Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1
Puissant environnement de développement intégré PHP

Dreamweaver CS6
Outils de développement Web visuel

SublimeText3 version Mac
Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Sujets chauds



Ces derniers jours, Ice Universe n'a cessé de révéler des détails sur le Galaxy S25 Ultra, qui est largement considéré comme le prochain smartphone phare de Samsung. Entre autres choses, le fuyard a affirmé que Samsung prévoyait d'apporter une seule mise à niveau de l'appareil photo.

OnLeaks s'est désormais associé à Android Headlines pour offrir un premier aperçu du Galaxy S25 Ultra, quelques jours après une tentative infructueuse de générer plus de 4 000 $ auprès de ses abonnés X (anciennement Twitter). Pour le contexte, les images de rendu intégrées ci-dessous h

En plus d'annoncer deux nouveaux smartphones, TCL a également annoncé une nouvelle tablette Android appelée NXTPAPER 14, et sa taille d'écran massive est l'un de ses arguments de vente. Le NXTPAPER 14 est doté de la version 3.0 de la marque emblématique de panneaux LCD mats de TCL.

Ces derniers jours, Ice Universe n'a cessé de révéler des détails sur le Galaxy S25 Ultra, qui est largement considéré comme le prochain smartphone phare de Samsung. Entre autres choses, le fuyard a affirmé que Samsung prévoyait d'apporter une seule mise à niveau de l'appareil photo.

Le Vivo Y300 Pro vient d'être entièrement dévoilé et c'est l'un des téléphones Android de milieu de gamme les plus fins avec une grande batterie. Pour être exact, le smartphone ne fait que 7,69 mm d'épaisseur mais dispose d'une batterie de 6 500 mAh. C'est la même capacité que le lancement récent

Samsung n'a pas encore donné d'indications sur la date à laquelle il mettrait à jour sa série de smartphones Fan Edition (FE). Dans l’état actuel des choses, le Galaxy S23 FE reste l’édition la plus récente de la société, ayant été présentée début octobre 2023. Cependant, de nombreux

Le Redmi Note 14 Pro Plus est désormais officiel en tant que successeur direct du Redmi Note 13 Pro Plus de l'année dernière (375 $ sur Amazon). Comme prévu, le Redmi Note 14 Pro Plus est en tête de la série Redmi Note 14 aux côtés du Redmi Note 14 et du Redmi Note 14 Pro. Li

Motorola a lancé d'innombrables appareils cette année, même si seuls deux d'entre eux sont pliables. Pour le contexte, alors que la plupart des pays du monde ont reçu la paire sous le nom de Razr 50 et Razr 50 Ultra, Motorola les propose en Amérique du Nord sous le nom de Razr 2024 et Razr 2.
