[关闭]
@Tyhj 2017-04-18T09:22:40.000000Z 字数 1248 阅读 2100

WebView打开支付宝和网页

Android


原文:https://www.zybuluo.com/Tyhj/note/726927

最近App用到支付宝,有个方法还是挺好的,后台写好了逻辑,给一个网址,移动端来调用就好了。可以打开手机支付宝支付也可以在网页上支付。

  1. WebSettings webSettings = web_result .getSettings();
  2. webSettings.setJavaScriptEnabled(true);
  3. webSettings.setUseWideViewPort(true); //将图片调整到适合webview的大小
  4. webSettings.setLoadWithOverviewMode(true); // 缩放至屏幕的大小
  5. webSettings.setDisplayZoomControls(false); //隐藏原生的缩放控件
  6. web_result.loadDataWithBaseURL(null, html, "text/html", "utf-8", null);
  7. web_result.getSettings().setLayoutAlgorithm(WebSettings.LayoutAlgorithm.SINGLE_COLUMN);
  8. web_result.setWebViewClient(new WebViewClient(){
  9. @Override
  10. public boolean shouldOverrideUrlLoading(WebView view, String url) {
  11. Log.e("加载的网页",url);
  12. if (url.contains("platformapi/startApp")) {
  13. startAlipayActivity(url);
  14. // android 6.0 两种方式获取intent都可以跳转支付宝成功,7.1测试不成功
  15. } else if ((Build.VERSION.SDK_INT > Build.VERSION_CODES.M)
  16. && (url.contains("platformapi") && url.contains("startApp"))) {
  17. startAlipayActivity(url);
  18. } else {
  19. view.loadUrl(url);
  20. }
  21. return true;
  22. }
  23. });
  24. // 调起支付宝并跳转到指定页面
  25. private void startAlipayActivity(String url) {
  26. Intent intent;
  27. try {
  28. intent = Intent.parseUri(url,
  29. Intent.URI_INTENT_SCHEME);
  30. intent.addCategory(Intent.CATEGORY_BROWSABLE);
  31. intent.setComponent(null);
  32. startActivity(intent);
  33. } catch (Exception e) {
  34. e.printStackTrace();
  35. }
  36. }

只需要一个URL就可以完成支付功能,就是支付成功没有什么反馈

添加新批注
在作者公开此批注前,只有你和作者可见。
回复批注