Hy everyone, J'ai un problème avec les liens hypertexte dans le WebView. Veuillez noter que j'ai parcouru tous les liens qui traitent d'un problème similaire, mais que je n'ai trouvé aucun adressage exactement le même problème.Les fonctions GestureScanner remplacent les liens hypertexte cliquez sur
En fait, j'ai une vue Web personnalisée, qui implémente certaines actions sur certains gestes. Je suppose que cela désactive la touche pour les hyperliens.
Je me demande comment puis-je garder les gestes et permettre aux hyperliens de travailler et d'appeler shouldOverrideUrlLoading
Ceci est l'affichage Web personnalisé Je:
public class newBTWebView extends WebView implements QuickAction.OnDismissListener, PopoverView.PopoverViewDelegate, GestureDetector.OnGestureListener {
public newBTWebView(Context context) {
super(context);
this.ctx = context;
setup(context);
init(context);
}
public newBTWebView(Context context, AttributeSet attrs, int defStyle) {
super(context, attrs, defStyle);
this.ctx = context;
setup(context);
init(context);
}
public void init(Context context) {
this.context = context;
setInitialScale(100);
this.getSettings().setJavaScriptEnabled(true);
Configuration conf = getResources().getConfiguration();
int screenLayout = 1;
try
{
Field field = conf.getClass().getDeclaredField("screenLayout");
screenLayout = field.getInt(conf);
}
catch (Exception e) {
}
loadingNewChap = false;
screenType = screenLayout & 15;
gestureScanner = new GestureDetector(this);
this.setVerticalScrollBarEnabled(false);
this.setHorizontalScrollBarEnabled(false);
this.setOnTouchListener(new View.OnTouchListener() {
public boolean onTouch(View v, MotionEvent event) {
int action = event.getAction();
if(event.getAction() == MotionEvent.ACTION_DOWN)
{
countDown++;
}
if(event.getAction() == MotionEvent.ACTION_UP && isLongPress)
{
//do selection
}
return gestureScanner.onTouchEvent(event);
}
});
}
J'ai également mis en œuvre les fonctions du geste: onFlingDo, onSingleTapUp, onShowPress, onLongPress, onDown
Voici comment j'appelle la WebView dans l'activité:
testWV = (newBTWebView) findViewById(R.id.mywebview1);
testWV.setVerticalScrollBarEnabled(false);
testWV.setHorizontalScrollBarEnabled(false);
testWV.setWebViewClient(new WebViewClient() {
@Override
public boolean shouldOverrideUrlLoading(WebView view, String url)
{
super.shouldOverrideUrlLoading(view, url);
return false;
}
@Override
public void onPageStarted(WebView view, String url, Bitmap favicon) {
}
@Override
public void onPageFinished(WebView view, String url) {
}
}
Une idée de comment je peux garder les gestes et encore capturer les clics des hyperliens?
chers électeurs, avec plaisir, j'indique la raison de ce vote afin que je puisse y remédier. Je vous remercie. – coder