2011-01-09 19 views
10

Tôi chưa thử nghiệm điều này trên bất kỳ thiết bị nào khác nhưng trên thiết bị 2.1, trong một WebView với các điều khiển thu phóng được bật, một thông báo chúc mừng đôi khi xuất hiện có nội dung như "Mẹo: nhấn đúp để phóng to và thu nhỏ". Tôi không biết nó đến từ đâu vì không có gì trong mã của tôi yêu cầu nó xuất hiện. Có cách nào vô hiệu hóa thứ đó không?Làm thế nào vô hiệu hóa thông báo tin nhắn tip mà đôi khi xuất hiện với các điều khiển thu phóng trong một WebView?

Tôi không biết cách tạo lại nhưng dường như điều này xảy ra thường xuyên hơn khi ứng dụng được cài đặt mới.

Trả lời

9

Như đã nêu trong câu trả lời của wajiw, bánh mì nướng được dựa trên số lượng vòi bánh mì nướng đôi trong WebSettings. Có một giải pháp thay thế dựa trên việc đặt trước giá trị đó. Các thiết lập web nhận giá trị của nó cho số đếm bánh mì nướng đôi từ SharedPreferences. Việc ghi đè giá trị tùy chọn sẽ vô hiệu hóa bánh mì nướng.

Tùy chọn dựa trên giá trị riêng tư trong Cài đặt web để nó không lý tưởng. Nếu việc thực hiện thay đổi, điều này rất có thể sẽ ngừng hoạt động. Vì vậy, sử dụng có nguy cơ của riêng bạn.

Dưới đây là các giá trị WebSettings sử dụng cho SharedPreferences. Bạn sẽ cần phải sao chép chúng trong lớp học của bạn.

private static final String PREF_FILE = "WebViewSettings"; 
private static final String DOUBLE_TAP_TOAST_COUNT = "double_tap_toast_count"; 

Sau đó, bạn sẽ cần phải thay đổi các giá trị trước khi sử dụng WebView

SharedPreferences prefs = context.getSharedPreferences(PREF_FILE, Context.MODE_PRIVATE); 
if (prefs.getInt(DOUBLE_TAP_TOAST_COUNT, 1) > 0) { 
    prefs.edit().putInt(DOUBLE_TAP_TOAST_COUNT, 0).commit(); 
} 

Check-out WebSettings source code để biết thêm.

+0

Cảm ơn, nó hoạt động như một sự quyến rũ. – uerceg

4

Từ nhìn vào nguồn WebView.java nó đến từ chức năng startDrag:

private void startDrag() { 
     WebViewCore.reducePriority(); 
     // to get better performance, pause updating the picture 
     WebViewCore.pauseUpdatePicture(mWebViewCore); 
     if (!mDragFromTextInput) { 
      nativeHideCursor(); 
     } 
     WebSettings settings = getSettings(); 
     if (settings.supportZoom() 
       && settings.getBuiltInZoomControls() 
       && !getZoomButtonsController().isVisible() 
       && mMinZoomScale < mMaxZoomScale 
       && (mHorizontalScrollBarMode != SCROLLBAR_ALWAYSOFF 
         || mVerticalScrollBarMode != SCROLLBAR_ALWAYSOFF)) { 
      mZoomButtonsController.setVisible(true); 
      int count = settings.getDoubleTapToastCount(); 
      if (mInZoomOverview && count > 0) { 
       settings.setDoubleTapToastCount(--count); 
       Toast.makeText(mContext, 
         com.android.internal.R.string.double_tap_toast, 
         Toast.LENGTH_LONG).show(); 
      } 
     } 
    } 

các thiết lập có thể truy cập thông qua getSettings(). Từ đó tôi sẽ cố gắng gọi setDoubleTapToastCount và sử dụng một cái gì đó như 0 hoặc -1 cho giá trị. Nếu điều đó không hiệu quả, bạn có thể không may mắn.

Xem nguồn đầy WebView.java here

+2

Dựa trên khả năng hiển thị của setDoubleTapToastCount và xem lại nguồn của WebSettings, hiện tại dường như không thể tắt thông báo này. –

+0

@ đó là những gì tôi đã đưa ra, nhưng nếu ai đó muốn tìm hiểu chắc chắn họ nên tạo ra một ứng dụng thử nghiệm và thử những gì họ có thể. Tôi cảm thấy như nó chỉ sẽ dẫn đến một kết thúc chết mặc dù – wajiw

+0

Tôi đã xem xét xung quanh tại mã và yea, nó không nhìn có thể. Quá tệ. Cảm ơn cho tìm mặc dù. – cottonBallPaws

Các vấn đề liên quan