Android通过webview调起微信和支付宝app进行支付
16lz
2021-01-25
//方法一:调用系统自带浏览器进行显示 mWv_test.getSettings().setJavaScriptEnabled(true);mWv_test.loadUrl("http://shengtai.polms.cn/index.php/bzcsnew/index/index/t/7/p/6");
//方法二:Webview里面完成所有网页显示@Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); mWebView=findViewById(R.id.webview); webViewSetting(); mWebView.loadUrl("http://shengtai.polms.cn/index.php/Bzcs/Index/index/t/7/p/6"); } private void webViewSetting() { WebSettings webSettings = mWebView.getSettings(); webSettings.setJavaScriptEnabled(true); //可执行js webSettings.setDefaultZoom(WebSettings.ZoomDensity.MEDIUM); //设置页面默认缩放密度 webSettings.setDefaultTextEncodingName("UTF-8"); //设置默认的文本编码名称,以便在解码html页面时使用 webSettings.setAllowContentAccess(true); //启动或禁用WebView内的内容URL访问 webSettings.setAppCacheEnabled(false); //设置是否应该启用应用程序缓存api webSettings.setBuiltInZoomControls(false); //设置WebView是否应该使用其内置的缩放机制 webSettings.setUseWideViewPort(true); //设置WebView是否应该支持viewport webSettings.setLoadWithOverviewMode(true); //不管WebView是否在概述模式中载入页面,将内容放大适合屏幕宽度 webSettings.setCacheMode(WebSettings.LOAD_NO_CACHE); //重写缓存的使用方式 webSettings.setJavaScriptCanOpenWindowsAutomatically(true); //告知js自动打开窗口 webSettings.setLoadsImagesAutomatically(true); //设置WebView是否应该载入图像资源 webSettings.setAllowFileAccess(true); //启用或禁用WebView内的文件访问 webSettings.setDomStorageEnabled(true); //设置是否启用了DOM存储API,默认为false mWebView.setWebViewClient(new WebViewClient(){ @Override public boolean shouldOverrideUrlLoading(WebView view, String url) { //H5调起微信app支付方法一(待验证)// if (url.contains("wx.tenpay")) {// Map extraHeaders = new HashMap();// extraHeaders.put("Referer", "http://zxpay.fss518.cn");// view.loadUrl(url, extraHeaders);// return true;// } //H5调起微信app支付方法二(可使用) if (url.startsWith("weixin://wap/pay?")) { Intent intent = new Intent(); intent.setAction(Intent.ACTION_VIEW); intent.setData(Uri.parse(url)); startActivity(intent); return true; } if(url.startsWith("alipays:") || url.startsWith("alipay")) { try { startActivity(new Intent("android.intent.action.VIEW", Uri.parse(url))); } catch (Exception e) { new AlertDialog.Builder(MainActivity.this) .setMessage("未检测到支付宝客户端,请安装后重试。") .setPositiveButton("立即安装", new DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface dialog, int which) { Uri alipayUrl = Uri.parse("https://d.alipay.com"); startActivity(new Intent("android.intent.action.VIEW", alipayUrl)); } }).setNegativeButton("取消", null).show(); } return true; } if (!(url.startsWith("http") || url.startsWith("https"))) { return true; } view.loadUrl(url); return true; } }); }
//点击回退按钮不是退出应用程序,而是返回上一个页面 @Override public boolean onKeyDown(int keyCode, KeyEvent event) { if (keyCode == KeyEvent.KEYCODE_BACK && mWebView.canGoBack()) { mWebView.goBack(); return true; } return super.onKeyDown(keyCode, event); }
更多相关文章
- 安全新手入坑——HTML标签
- Nginx系列教程(四)| 一文带你读懂Nginx的动静分离
- Android开发------------杂记
- android_apps_frameworks_通话处理流程
- Android(安卓)中的menu以及自定义menu
- Android之SharePreferences数据存储
- Android开发20——单个监听器监听多个按钮点击事件
- 【原创】如何在Android中为TextView动态设置drawableLeft等
- Android(安卓)P 为系统AudioManager添加新的接口方法