下面列出了android.webkit.WebView#setOnLongClickListener ( ) 实例代码,或者点击链接到github查看源代码,也可以在右侧发表评论。
@Override
protected void setAgentWeb(AgentWeb mAgentWeb) {
super.setAgentWeb(mAgentWeb);
WebView mWebView = mAgentWeb.getWebCreator().getWebView();
mWebView.setOnLongClickListener(v -> {
WebView.HitTestResult hitTestResult = mWebView.getHitTestResult();
if (hitTestResult == null) {
return false;
}
if (hitTestResult.getType() == WebView.HitTestResult.IMAGE_TYPE
|| hitTestResult.getType() == WebView.HitTestResult.SRC_IMAGE_ANCHOR_TYPE) {
showDownDialog(hitTestResult.getExtra());
} else if (!mIsShowTitle) {
showActionSheet();
}
LoggerManager.d("onLongClick:hitTestResult-Type:" + hitTestResult.getType() + ";Extra:" + hitTestResult.getExtra());
return true;
});
}
@Override
protected void setAgentWeb(AgentWeb mAgentWeb) {
super.setAgentWeb(mAgentWeb);
WebView mWebView = mAgentWeb.getWebCreator().getWebView();
mWebView.setOnLongClickListener(v -> {
WebView.HitTestResult hitTestResult = mWebView.getHitTestResult();
if (hitTestResult == null) {
return false;
}
if (hitTestResult.getType() == WebView.HitTestResult.IMAGE_TYPE
|| hitTestResult.getType() == WebView.HitTestResult.SRC_IMAGE_ANCHOR_TYPE) {
showDownDialog(hitTestResult.getExtra());
} else if (!mIsShowTitle) {
showActionSheet();
}
LoggerManager.d("onLongClick:hitTestResult-Type:" + hitTestResult.getType() + ";Extra:" + hitTestResult.getExtra());
return true;
});
}
/**
* 初始化传入的webView
*/
@SuppressLint("SetJavaScriptEnabled")
@RequiresApi(api = Build.VERSION_CODES.JELLY_BEAN)
public WebView initialWebView(WebView webView){
webView.setHorizontalScrollBarEnabled(false);
//不能纵向滚动
webView.setVerticalScrollBarEnabled(false);
//允许截图
webView.setDrawingCacheEnabled(true);
//屏蔽长按事件
webView.setOnLongClickListener(new View.OnLongClickListener() {
@Override
public boolean onLongClick(View v) {
return true;
}
});
//初始化WebSettings
final WebSettings settings = webView.getSettings();
settings.setJavaScriptEnabled(true);
final String ua = settings.getUserAgentString();
settings.setUserAgentString(ua + "Latte");
//隐藏缩放控件
settings.setBuiltInZoomControls(false);
settings.setDisplayZoomControls(false);
//禁止缩放
settings.setSupportZoom(false);
//文件权限
settings.setAllowFileAccess(true);
settings.setAllowFileAccessFromFileURLs(true);
settings.setAllowUniversalAccessFromFileURLs(true);
settings.setAllowContentAccess(true);
//缓存相关
settings.setAppCacheEnabled(true);
settings.setDomStorageEnabled(true);
settings.setDatabaseEnabled(true);
settings.setCacheMode(WebSettings.LOAD_DEFAULT);
return webView;
}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
View view = inflater.inflate(R.layout.gallery_large_layout, container, false);
final WebView large = (WebView) view.findViewById(R.id.large);
large.setBackgroundColor(getResources().getColor(R.color.transparent));
large.setVisibility(View.INVISIBLE);
large.setOverScrollMode(View.OVER_SCROLL_NEVER);
if (SettingUtils.allowClickToCloseGallery()) {
large.setOnTouchListener(new LargeOnTouchListener(large));
}
LongClickListener longClickListener = ((BigPicContainerFragment) getParentFragment()).getLongClickListener();
large.setOnLongClickListener(longClickListener);
final String path = getArguments().getString("path");
large.getSettings().setJavaScriptEnabled(true);
large.getSettings().setUseWideViewPort(true);
large.getSettings().setLoadWithOverviewMode(true);
large.getSettings().setBuiltInZoomControls(true);
large.getSettings().setDisplayZoomControls(false);
large.setVerticalScrollBarEnabled(false);
large.setHorizontalScrollBarEnabled(false);
large.setLayerType(View.LAYER_TYPE_SOFTWARE, null);
boolean animateIn = getArguments().getBoolean("animationIn");
if (animateIn) {
showContent(path, large);
} else {
/**
* webview will influence other imageview animation performance
*/
new Handler(Looper.getMainLooper()).postDelayed(new Runnable() {
@Override
public void run() {
showContent(path, large);
}
}, GeneralPictureFragment.ANIMATION_DURATION + 300);
}
return view;
}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
View view = inflater.inflate(R.layout.gallery_large_layout, container, false);
final WebView large = (WebView) view.findViewById(R.id.large);
large.setBackgroundColor(getResources().getColor(R.color.transparent));
large.setVisibility(View.INVISIBLE);
large.setOverScrollMode(View.OVER_SCROLL_NEVER);
if (SettingUtils.allowClickToCloseGallery()) {
large.setOnTouchListener(new LargeOnTouchListener(large));
}
LongClickListener longClickListener = ((BigPicContainerFragment) getParentFragment()).getLongClickListener();
large.setOnLongClickListener(longClickListener);
final String path = getArguments().getString("path");
large.getSettings().setJavaScriptEnabled(true);
large.getSettings().setUseWideViewPort(true);
large.getSettings().setLoadWithOverviewMode(true);
large.getSettings().setBuiltInZoomControls(true);
large.getSettings().setDisplayZoomControls(false);
large.setVerticalScrollBarEnabled(false);
large.setHorizontalScrollBarEnabled(false);
large.setLayerType(View.LAYER_TYPE_SOFTWARE, null);
boolean animateIn = getArguments().getBoolean("animationIn");
if (animateIn) {
showContent(path, large);
} else {
/**
* webview will influence other imageview animation performance
*/
new Handler(Looper.getMainLooper()).postDelayed(new Runnable() {
@Override
public void run() {
showContent(path, large);
}
}, GeneralPictureFragment.ANIMATION_DURATION + 300);
}
return view;
}