Android webview 加载H5界面,如何获取H5界面内,支付按钮的点击事件?

凡人不羡仙 2016-01-03 02:34:33
最近公司有这么个需求,webview嵌套了我们自己的网页版微信商城,目前主要使用微信支付,总监要求用Webview拦截H5支付按钮的点击事件,我找了API也没发现拦截这个点击事件的方法,总监说是有这么样子的方法的,我现在真没头绪了,按照我的想法,我写一个方法,在H5界面上点击支付的时候判断目前的环境,如果是android的环境,就吊起我的方法,但是总监坚决让我们用拦截H5的方式,请问各位,如何拦截H5中按钮的点击事件呢?
...全文
10342 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
qq_36142119 2016-09-14
  • 打赏
  • 举报
回复
引用 11 楼 adzcsx2 的回复:
拦截按钮事件比较麻烦,拦截<a>标签的href是很简单的。 shouldOverrideUrlLoading,在url那里判断一下就好了。
这个怎么实现有没有Demo
Hoyn 2016-05-03
  • 打赏
  • 举报
回复
拦截按钮事件比较麻烦,拦截<a>标签的href是很简单的。 shouldOverrideUrlLoading,在url那里判断一下就好了。
凡人不羡仙 2016-04-29
  • 打赏
  • 举报
回复
引用 9 楼 u011886064 的回复:
请问大神 h5调用android版微信支付,支付成功后 如何回到指定的页面啊
webview加载对应界面就可以了啊,支付成功后根据回调进行加载
梓子 2016-04-15
  • 打赏
  • 举报
回复
请问大神 h5调用android版微信支付,支付成功后 如何回到指定的页面啊
凡人不羡仙 2016-03-03
  • 打赏
  • 举报
回复
引用 7 楼 qq_24343819 的回复:
请问,是怎么实现的
用webview拦截到目标URL,然后吊起自己的操作。
闲散懒惰的猫 2016-02-29
  • 打赏
  • 举报
回复
请问,是怎么实现的
凡人不羡仙 2016-01-19
  • 打赏
  • 举报
回复
引用 5 楼 mazejia 的回复:
我理解,这个不就是js和webview交互么,让js定义好接口和回调方法,方法中的参数就是你要的各种值,webview中实现这个接口,拿到方法中的值满足你的需求就可以了。
多谢,现在功能已经实现了,深表感谢
筱筱_33 2016-01-07
  • 打赏
  • 举报
回复
我理解,这个不就是js和webview交互么,让js定义好接口和回调方法,方法中的参数就是你要的各种值,webview中实现这个接口,拿到方法中的值满足你的需求就可以了。
凡人不羡仙 2016-01-07
  • 打赏
  • 举报
回复
引用 2 楼 qq_27665781 的回复:
拦截支付宝网址 public boolean parseScheme(String url) { if(url.contains("https://mapi.alipay.com")) { return true; } else{ return false; } } 在shouldOverrideUrlLoading里面写调用支付宝的方法: if(parseScheme(url)){ Uri uri = Uri.parse(url); Intent intent =new Intent(Intent.ACTION_VIEW, uri); startActivity(intent); }
多谢,再问一下,我能拦截到这个url,但是如何获取要支付的信息呢?比如:订单号,价格,商品描述等等信息,我如何从webview里面显示的界面拿出来呢?我这个确实是客户端的,多谢了,等你回答。 如果有多种支付的时候,如何判断是那种支付方式呢?根据url么?
凡人不羡仙 2016-01-07
  • 打赏
  • 举报
回复
引用 1 楼 u013823101 的回复:
你写一个类继承WebViewClient,实现里面的shouldOverrideUrlLoading方法,然后通过H5的页面按钮点击之后可以跳转一个定义好的路径url,你通过截取这个Url,来判断是否调用微信支付。By the way,微信支付可以本地实现,也可以H5页面实现,看你需求应该是客户端实现。
多谢,再问一下,我能拦截到这个url,但是如何获取要支付的信息呢?比如:订单号,价格,商品描述等等信息,我如何从webview里面显示的界面拿出来呢?我这个确实是客户端的,多谢了,等你回答。
qq_27665781 2016-01-04
  • 打赏
  • 举报
回复
拦截支付宝网址 public boolean parseScheme(String url) { if(url.contains("https://mapi.alipay.com")) { return true; } else{ return false; } } 在shouldOverrideUrlLoading里面写调用支付宝的方法: if(parseScheme(url)){ Uri uri = Uri.parse(url); Intent intent =new Intent(Intent.ACTION_VIEW, uri); startActivity(intent); }
技术承载梦想 2016-01-04
  • 打赏
  • 举报
回复
你写一个类继承WebViewClient,实现里面的shouldOverrideUrlLoading方法,然后通过H5的页面按钮点击之后可以跳转一个定义好的路径url,你通过截取这个Url,来判断是否调用微信支付。By the way,微信支付可以本地实现,也可以H5页面实现,看你需求应该是客户端实现。

80,490

社区成员

发帖
与我相关
我的任务
社区描述
移动平台 Android
androidandroid-studioandroidx 技术论坛(原bbs)
社区管理员
  • Android
  • yechaoa
  • 失落夏天
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧