如何让webview 识别二维码识别alipay开头的链接调起支付宝支付

09:47 提问
Android webview里调用 支付宝接口
做的程序是Android框架嵌套js 用webview来加载这些页面,现在在webview里面点击支付时的时候,
会跳转到一个PC版的页面进行支付,这个功能在PC上是正常的。
现在嵌套在Android里的时候 ,经常出现无法登陆,扫码支付后不能返回的现象。
所以决定用支付宝的接口。
就是这种介入方式,里面有个方法接口fetchOrderInfoFromH5PayUrl
从拦截的URL中获取支付请求相关信息,封装成新的订单信息字符串作为返回值。如果该URL不是有效的支付宝支付URL,则返回空字符串。
但是现在这个我总是不能拦截到自己支付地址,还是会跳转到PC版的页面,想要的结果是可以直接底部弹出来支付框(有安装支付宝APP的时候),没有装的话是转到H5的页面中。
这个接入需要申请什么权限吗,我看官方demo里这种方式没有用到,
看到的朋友
可以指点一下吗,第一次集成支付宝 非常迷茫,项目快上线了,这个功能以及纠缠我好多天了,在线等
按赞数排序
webview会有权限问题,既然你是android程序,那么最好用native接入方式,接起来也很简单,而且基本能保证运行正常。体验也好。
可以通过JS和Android的通信,来吧网页的请求转化为Android应用的请求,这样就能拉起手机上的支付宝APP了。
二楼你好,我想请问一下:我现在就是用native的方式去接入,当页面跳转到PC版网页的时候
如果我安装的有支付宝APP
现在确实会跳转到APP里面支付,
但是有两个问题,
1.支付完成后不会自己跳转,手动返回后确实可以在webview里面接受到返回信息 然后页面进行正常跳转,怎么才可以自动跳
2.当手机上没有装支付宝APP的时候,它只是跳转到SDK里面的一个Activity里的一个webview 然后载入的还是PC版页面
1.支付完成后不会自己跳转,手动返回后确实可以在webview里面接受到返回信息 然后页面进行正常跳转,怎么才可以自动跳
2.当手机上没有装支付宝APP的时候,它只是跳转到SDK里面的一个Activity里的一个webview 然后载入的还是PC版页面
第一个问题,应该是设置问题,支付宝是可以自动跳转到调用者的。
第二个问题,对于没有安装支付宝app的情况,这是正常表现,它只能调用网页了。我不知道你是不是说不应该弹PC网页而是移动端网页。
如果你是这个意思,那么你应该看一下你的webview请求参数是不是让它作为移动端的浏览器标识。
感谢zouyongjin
你的回答,还想再问一下 第二个问题 你说的“webview请求参数是不是让它作为移动端的浏览器标识”
不太明白是什么意思,网上 查了是这个东西吗User-Agent?
意思就是让网站识别浏览器
然后把PC版的返回成手机版的?那么该怎么设置呢,网上查的都看不太明白
比如找到的这个:
// 修改ua使得web端正确判断
String ua = webview.getSettings().getUserAgentString();
webview.getSettings().setUserAgentString(ua+"; HFWSH /"+appversion);
后面的"; HFWSH /"+appversion
是干嘛用的呢
webview.getSettings().setUserAgentString(ua+"; HFWSH /"+appversion);
这个就是在默认的user-agent字符串后面添加一个尾部标示而已。HFWSH /这个只是浏览器的标识。可以理解为版本代号。
不同的android系统可能webview的UA也不一样,比如android4.4就改了webview,性能有很大提升,同事UA也变更了。你可以自己动手试试看取出来的UA值是什么。
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!
其他相关推荐17被浏览5127分享邀请回答14 条评论分享收藏感谢收起0添加评论分享收藏感谢收起匿名用户不能发表回复!|
每天回帖即可获得10分可用分!小技巧:
你还可以输入10000个字符
(Ctrl+Enter)
请遵守CSDN,不得违反国家法律法规。
转载文章请注明出自“CSDN(www.csdn.net)”。如是商业用途请联系原作者。Pages: 1/3
主题 : iOS9上面不能跳转到支付宝客户端支付 什么情况只能跳到网页
级别: 骑士
UID: 489311
可可豆: 1261 CB
威望: 915 点
在线时间: 823(时)
发自: Web Page
来源于&&分类
iOS9上面不能跳转到支付宝客户端支付 什么情况只能跳到网页&&&
iOS9上面不能跳转到支付宝客户端支付 什么情况只能跳到网页
级别: 骑士
UID: 489311
可可豆: 1261 CB
威望: 915 点
在线时间: 823(时)
发自: Web Page
iOS9以下就没问题,解决过这个问题的帮忙给说下吧,支付宝客服一直是繁忙
级别: 骑士
UID: 489311
可可豆: 1261 CB
威望: 915 点
在线时间: 823(时)
发自: Web Page
为了适配 iOS9.0 中的 App Transport Security(ATS)对 http 的限制,这里需要对 支付宝的请求地址
做例外,在 app 对应的 info.list 中添加如下配置 (文中以 XML 格式描述)。
级别: 骑士
UID: 489311
可可豆: 1261 CB
威望: 915 点
在线时间: 823(时)
发自: Web Page
&key&NSAppTransportSecurity&/key&&& &dict&&&&&&& &key&NSExceptionDomains&/key&&&&&&& &dict&&&&&&&&&&&&key&&/key&&&&&&&&&&&&dict&&!--Include to allow subdomains--& &key&NSIncludesSubdomains&/key&&true/&&!--Include to allow insecure HTTP requests--& &key&NSTemporaryExceptionAllowsInsecureHTTPLoads&/key& &true/&&&&&&&&&&&&& &!--Include to specify minimum TLS version--&&&&&&&&&&&&& &key&NSTemporaryExceptionMinimumTLSVersion&/key&&&&&&&&&&&&& &string&TLSv1.1&/string&&&&&&&&&&&&/dict&&&&&&& &/dict&&/dict&
级别: 骑士
UID: 489311
可可豆: 1261 CB
威望: 915 点
在线时间: 823(时)
发自: Web Page
自己动手丰衣足食
级别: 新手上路
UID: 454065
可可豆: 46 CB
威望: 38 点
在线时间: 109(时)
发自: Web Page
回 3楼(煎饼侠) 的帖子
感谢分享。
级别: 新手上路
UID: 404158
可可豆: 4 CB
威望: 3 点
在线时间: 38(时)
发自: Web Page
3楼正解,xcode7.0里面的info都要设置的
级别: 新手上路
UID: 454065
可可豆: 46 CB
威望: 38 点
在线时间: 109(时)
发自: Web Page
回 6楼(雪夜裸奔ing) 的帖子
我按照3楼的设置了,可是还是跳转到支付宝的网页,没办法跳转到客户端。&&是我设置错了吗?
图片:493CC9D2-086F-ED8BBD7380D.png
级别: 新手上路
UID: 454065
可可豆: 46 CB
威望: 38 点
在线时间: 109(时)
发自: Web Page
回 3楼(煎饼侠) 的帖子
大神,帮忙看下7楼。 也就是我发的图片,看看这样设置是否错误。如果没有错,那能帮忙解释下,为什么我的支付宝支付 iOS 9.0以上的版本还是没办法跳转到客户端去支付的问题吗?
级别: 新手上路
可可豆: 98 CB
威望: 98 点
在线时间: 427(时)
发自: Web Page
回 8楼(sevenmylove520) 的帖子
同时需要在Plist中设置支付宝为白名单
Pages: 1/3
关注本帖(如果有新回复会站内信通知您)
发帖、回帖都会得到可观的积分奖励。
按"Ctrl+Enter"直接提交
关注CocoaChina
关注微信 每日推荐
扫一扫 关注CVP公众号
扫一扫 浏览移动版问题对人有帮助,内容完整,我也想知道答案
问题没有实际价值,缺少关键内容,没有改进余地
目前有个需求是打开网页点击付款拿到订单信息并且跳转到支付宝的客户端,想问下具体该怎么实现
答案对人有帮助,有参考价值
答案没帮助,是错误的答案,答非所问
如楼上两位所说:
在移动端可以直接使用支付宝的WAP支付接口,先在后台向支付宝获取支付ID,然后加密参数跳转支付宝网页版支付。
如果是内嵌在app里面,建议客户端接入原生SDK,实现js接口,使用JS调用Web view的js接口完成支付。尽量不要在客户端做那些参数加密。。。。放服务端做!!!
答案对人有帮助,有参考价值
答案没帮助,是错误的答案,答非所问
让 js 和 native 交互, android 端的话大致步骤如下:
1 mWebView.getSettings().setJavaScriptEnabled(true);//开启js
2 mWebView.addJavascriptInterface(new JsCallback() {
@JavascriptInterface
//为避免在4.1+系统上运行失败,添加此段注释
public void onJsCallback() {
//此处逻辑代码
}, "jsUseAndroid");
//param2是js回调对象的名称,和服务器端的要保持一致
3 Interface JsCallback{
//定义回调接口
public void onJsCallback();
分享到微博?
关闭理由:
删除理由:
忽略理由:
推广(招聘、广告、SEO 等)方面的内容
与已有问题重复(请编辑该提问指向已有相同问题)
答非所问,不符合答题要求
宜作评论而非答案
带有人身攻击、辱骂、仇恨等违反条款的内容
无法获得确切结果的问题
非开发直接相关的问题
非技术提问的讨论型问题
其他原因(请补充说明)
我要该,理由是:
在 SegmentFault,解决技术问题
每个月,我们帮助 1000 万的开发者解决各种各样的技术问题。并助力他们在技术能力、职业生涯、影响力上获得提升。
一线的工程师、著名开源项目的作者们,都在这里:
获取验证码
已有账号?

我要回帖

更多关于 需要webview二次验证 的文章

 

随机推荐