Maison interface Web tutoriel HTML android重写webview长按时选择文字然后点击搜索按钮的事件,默认是chrome接受点击事件,现在跳转到360搜索页面_html/css_WEB-ITnose

android重写webview长按时选择文字然后点击搜索按钮的事件,默认是chrome接受点击事件,现在跳转到360搜索页面_html/css_WEB-ITnose

Jun 24, 2016 am 11:45 AM


用这个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;
Copier après la connexion
/**  
* 在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;     
  } 
  }
Copier après la connexion

以上就是android重写webview长按时选择文字然后点击搜索按钮的事件,默认是chrome接受点击事件,现在跳转到360搜索页面_html/css_WEB-ITnose的内容,更多相关内容请关注PHP中文网(www.php.cn)!


Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn

Outils d'IA chauds

Undresser.AI Undress

Undresser.AI Undress

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

AI Clothes Remover

AI Clothes Remover

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

Undress AI Tool

Undress AI Tool

Images de déshabillage gratuites

Clothoff.io

Clothoff.io

Dissolvant de vêtements AI

AI Hentai Generator

AI Hentai Generator

Générez AI Hentai gratuitement.

Article chaud

R.E.P.O. Crystals d'énergie expliqués et ce qu'ils font (cristal jaune)
3 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Meilleurs paramètres graphiques
3 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Comment réparer l'audio si vous n'entendez personne
3 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
Où trouver la courte de la grue à atomide atomique
1 Il y a quelques semaines By DDD

Outils chauds

Bloc-notes++7.3.1

Bloc-notes++7.3.1

Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise

SublimeText3 version chinoise

Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1

Envoyer Studio 13.0.1

Puissant environnement de développement intégré PHP

Dreamweaver CS6

Dreamweaver CS6

Outils de développement Web visuel

SublimeText3 version Mac

SublimeText3 version Mac

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

Un nouveau rapport fournit une évaluation accablante des rumeurs de mise à niveau des appareils photo des Samsung Galaxy S25, Galaxy S25 Plus et Galaxy S25 Ultra Un nouveau rapport fournit une évaluation accablante des rumeurs de mise à niveau des appareils photo des Samsung Galaxy S25, Galaxy S25 Plus et Galaxy S25 Ultra Sep 12, 2024 pm 12:23 PM

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 Samsung Galaxy S25 Ultra fuit dans les premières images de rendu avec des rumeurs de modifications de conception révélées Le Samsung Galaxy S25 Ultra fuit dans les premières images de rendu avec des rumeurs de modifications de conception révélées Sep 11, 2024 am 06:37 AM

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

IFA2024 | Le NXTPAPER 14 de TCL n'égalera pas la Galaxy Tab S10 Ultra en termes de performances, mais il lui correspond presque en taille IFA2024 | Le NXTPAPER 14 de TCL n'égalera pas la Galaxy Tab S10 Ultra en termes de performances, mais il lui correspond presque en taille Sep 07, 2024 am 06:35 AM

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.

Un nouveau rapport fournit une évaluation accablante des rumeurs de mise à niveau des appareils photo des Samsung Galaxy S25, Galaxy S25 Plus et Galaxy S25 Ultra Un nouveau rapport fournit une évaluation accablante des rumeurs de mise à niveau des appareils photo des Samsung Galaxy S25, Galaxy S25 Plus et Galaxy S25 Ultra Sep 12, 2024 pm 12:22 PM

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.

Vivo Y300 Pro contient une batterie de 6 500 mAh dans un boîtier mince de 7,69 mm Vivo Y300 Pro contient une batterie de 6 500 mAh dans un boîtier mince de 7,69 mm Sep 07, 2024 am 06:39 AM

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

Le Samsung Galaxy S24 FE est annoncé pour un lancement moins cher que prévu en quatre couleurs et deux options de mémoire Le Samsung Galaxy S24 FE est annoncé pour un lancement moins cher que prévu en quatre couleurs et deux options de mémoire Sep 12, 2024 pm 09:21 PM

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

Xiaomi Redmi Note 14 Pro Plus arrive en tant que premier smartphone Qualcomm Snapdragon 7s Gen 3 avec caméra Light Hunter 800 Xiaomi Redmi Note 14 Pro Plus arrive en tant que premier smartphone Qualcomm Snapdragon 7s Gen 3 avec caméra Light Hunter 800 Sep 27, 2024 am 06:23 AM

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

Le Motorola Razr 50s se présente comme un nouveau budget pliable possible lors d'une fuite précoce Le Motorola Razr 50s se présente comme un nouveau budget pliable possible lors d'une fuite précoce Sep 07, 2024 am 09:35 AM

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.

See all articles