webView的简单实际使用
来源:互联网 发布:淘宝店铺修改退货地址 编辑:程序博客网 时间:2024/06/11 21:41
关键性代码,仅参考:
初始化常量
// 支付的urlprivate static final String ORDER_URL = "http://www.pgagolf.cn/?OrderID";// 荣耀服务的urlprivate static final String HONOR_SERVER_URL = "home/license";// 我的活动urlprivate static final String MY_COMPETITION_URL = "Activityapp/MyActivityList";// 拨号urlprivate static final String CALL_TEL_URL = "tel:";// 保存相册urlprivate static final String SAVE_TO_PHOTO_ALBUMS_URL = "isAndroid:";// 跳到我的报名页private static final String JUMP_TO_SIGN_UP_URL = "Activity/MyActivityList";private LinkedList<String> loadHistoryUrls;private String orderId;private ValueCallback<Uri> mUploadMessage;private ValueCallback<Uri[]> mUploadMessage5;public static final int FILECHOOSER_RESULTCODE = 5173;public static final int FILECHOOSER_RESULTCODE_FOR_ANDROID_5 = 5174;
private String weburl="http://app.pgagolf.cn/ActivityAPP/EventActivities?eventActivity_id=146&userId=sIBjQA5lex9CPzsqQXYifPT37uT3L/ICfvpyOzAJBVI=&isAndroid=Android";
页面加载布局之后
webView.loadUrl(weburl);WebSettings settings = webView.getSettings();//设置WebView是否允许执行JavaScript脚本,默认false,不允许settings.setJavaScriptEnabled(true);//是否开启本地DOM存储 可处理一些手机显示空白问题settings.setDomStorageEnabled(true);//设置自适应屏幕宽度settings.setUseWideViewPort(true);settings.setLoadWithOverviewMode(true);settings.setDefaultTextEncodingName("utf-8");//设置是否支持缩放settings.setSupportZoom(true);settings.setBuiltInZoomControls(true);//设置缓存,否则后台重定向返回后导致缓存丢失settings.setCacheMode(WebSettings.LOAD_CACHE_ELSE_NETWORK);//android5.0以上不显示图片的解决办法if (android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.LOLLIPOP) { settings.setMixedContentMode(WebSettings.MIXED_CONTENT_ALWAYS_ALLOW);}/处理webview URL跳转事件 webView.setWebViewClient(new WebViewClient() { @Override public void onPageFinished(WebView view, String url) { super.onPageFinished(view, url); } @Override public void onPageStarted(WebView view, String url, Bitmap favicon) { super.onPageStarted(view, url, favicon); loadHistoryUrls.add(url); } @Override public void onReceivedSslError(WebView view, SslErrorHandler handler, SslError error) { //接收所有证书 handler.proceed();// super.onReceivedSslError(view, handler, error); } @Override public boolean shouldOverrideUrlLoading(WebView view, String url) { System.out.println("url="+url); if (url.contains(MY_COMPETITION_URL)) { //我的活动 startActivity(new Intent(EventDetailActivity.this, MyEventActivity.class)); return true; } else if (url.contains(CALL_TEL_URL)) { //电话 final String phoneStr = url.substring(4); callPhone(phoneStr); return true; } else if (url.contains(HONOR_SERVER_URL)) { //荣耀服务条款 startActivity(new Intent(EventDetailActivity.this, ServiceTermsActivity.class)); return true; } else if (url.contains(SAVE_TO_PHOTO_ALBUMS_URL)) { //保存到相册 return true; } else if (url.contains(JUMP_TO_SIGN_UP_URL)) { //返回我的参加的活动 startActivity(new Intent(EventDetailActivity.this, MyEventActivity.class)); finish(); return true; } else if (url.contains(ORDER_URL)) { //支付 orderId = url.substring(url.indexOf("=") + 1); accessOrder(); return true; }else { } return super.shouldOverrideUrlLoading(view, url); } }); setWebChromeClient();//处理android系统webView调用H5文件上传JS无反应操作/** * TODO 处理android系统webView调用H5文件上传JS无反应操作 */private void setWebChromeClient(){ webView.setWebChromeClient(new WebChromeClient() { // For Android < 3.0 public void openFileChooser(ValueCallback<Uri> uploadMsg){ this.openFileChooser(uploadMsg, "*/*"); } // For Android >= 3.0 public void openFileChooser(ValueCallback<Uri> uploadMsg, String acceptType) { this.openFileChooser(uploadMsg, acceptType, null); } // For Android >= 4.1 public void openFileChooser(ValueCallback<Uri> uploadMsg, String acceptType, String capture) { mUploadMessage = uploadMsg; Intent i = new Intent(Intent.ACTION_GET_CONTENT); i.addCategory(Intent.CATEGORY_OPENABLE); i.setType("*/*"); startActivityForResult(Intent.createChooser(i, "File Browser"), FILECHOOSER_RESULTCODE); } // For Lollipop 5.0+ Devices @TargetApi(Build.VERSION_CODES.LOLLIPOP) public boolean onShowFileChooser(WebView mWebView, ValueCallback<Uri[]> filePathCallback, WebChromeClient.FileChooserParams fileChooserParams) { if (mUploadMessage5 != null) { mUploadMessage5.onReceiveValue(null); mUploadMessage5 = null; } mUploadMessage5 = filePathCallback; Intent intent = fileChooserParams.createIntent(); try { startActivityForResult(intent, FILECHOOSER_RESULTCODE_FOR_ANDROID_5); } catch (ActivityNotFoundException e) { mUploadMessage5 = null; return false; } return true; } @Override public void onProgressChanged(WebView view, int newProgress) { if (newProgress == 100) { // 网页加载完成 pb.setVisibility(View.GONE); } else { // 加载中 pb.setVisibility(View.VISIBLE); pb.setProgress(newProgress); } super.onProgressChanged(view, newProgress); } });}@SuppressLint("NewApi")@Overrideprotected void onActivityResult(int requestCode, int resultCode, Intent intent) { super.onActivityResult(requestCode, resultCode, intent); if (requestCode == FILECHOOSER_RESULTCODE) { if (null == mUploadMessage) { return; } Uri result = intent == null || resultCode != Activity.RESULT_OK ? null : intent.getData(); mUploadMessage.onReceiveValue(result); mUploadMessage = null; } else if (requestCode == FILECHOOSER_RESULTCODE_FOR_ANDROID_5) { if (null == mUploadMessage5) { return; } mUploadMessage5.onReceiveValue(WebChromeClient.FileChooserParams .parseResult(resultCode, intent)); mUploadMessage5 = null; }}
阅读全文
0 0
- webView的简单实际使用
- 简单webview的使用
- 简单WebView的使用
- WebView的简单使用
- WebView简单的使用
- WebView的简单使用
- WebView的简单使用
- WebView的简单使用
- WebView的简单使用
- WebView的简单使用
- WebView的简单使用
- webview的简单使用
- WebView的简单使用
- WebView的简单使用
- WebView的简单使用
- WebView的简单使用
- WebView的简单使用
- WebView的简单使用
- 系统应用被杀死?android:persistent="true"帮你走向光明大道
- 原生Ajax和Jquery的Ajax使用示例
- 添加依赖报错
- 如何在Spyder中运行spark
- 数独问题
- webView的简单实际使用
- spring-data-redis scan 中的cursor关闭
- java安全沙箱(四)之安全管理器及Java API
- 高性能MYSQL--第一章
- sort-cut-wc用法详解
- POJ 2356 Find a multiple【鸽巢原理】
- android jni中将大数据回调到java层的时候用法,比如视频流,音频流等,图片流等 比如我用ffmpeg解码好视频流,想送到java层使用opengGL进行显示,opencv进行人脸识别等等
- 求最大子列和(时间复杂度分别为O(n3) O(n2) O(n))
- 完胜竞争对手的seo临门一脚