常量:
WebView.HitTestResult.UNKNOWN_TYPE 未知類型
WebView.HitTestResult.PHONE_TYPE 電話類型
WebView.HitTestResult.EMAIL_TYPE 電子郵件類型
WebView.HitTestResult.GEO_TYPE 地圖類型
WebView.HitTestResult.SRC_ANCHOR_TYPE 超鏈接類型
WebView.HitTestResult.SRC_IMAGE_ANCHOR_TYPE 帶有鏈接的圖片類型
WebView.HitTestResult.IMAGE_TYPE 單純的圖片類型
WebView.HitTestResult.EDIT_TEXT_TYPE 選中的文字類型
方法:
WebView有一個getHitTestResult():返回的是一個HitTestResult霍狰,一般會根據(jù)打開的鏈接的類型,返回一個extra的信息泼返,如果打開鏈接不是一個url,或者打開的鏈接是JavaScript的url尿瞭,他的類型是UNKNOWN_TYPE,這個url就會通過requestFocusNodeHref(Message)異步重定向。返回的extra為null恼策,或者沒有返回extra码倦。根據(jù)此方法的返回值企孩,判斷是否為null,可以用于解決網(wǎng)頁重定向問題袁稽。
簡單dewebview 長按事件的實現(xiàn)
webView.setOnLongClickListener(new View.OnLongClickListener() {
@RequiresApi(api = Build.VERSION_CODES.LOLLIPOP_MR1)
@Override
public boolean onLongClick(View v) {
Toast.makeText(mContext, "長按", Toast.LENGTH_SHORT).show();
responseWebLongClick(v);
return true;
}
});
@RequiresApi(api = Build.VERSION_CODES.LOLLIPOP_MR1)
private void responseWebLongClick(View v) {
if (v instanceof WebView) {
WebView.HitTestResult result = ((WebView) v).getHitTestResult();
//獲得了點擊處數(shù)據(jù)
if (result != null) {
int type = result.getType();
//如果長安的是圖片
if (type == WebView.HitTestResult.IMAGE_TYPE || type == WebView.HitTestResult.SRC_IMAGE_ANCHOR_TYPE) {
longClickUrl = result.getExtra();
//彈出菜單
Log.e(TAG, "responseWebLongClick: " + longClickUrl);
showDialog(longClickUrl, v);
}
}
}
}
WebView中視頻及音樂的關(guān)閉
@Override
protected void onPause() {
webView.reload();
super.onPause();
}