使用UIWebView中遇到的问题

1、webView中使用H5微信支付

在webView中使用H5微信支付跳转到微信收银台页面时,点击取消或者支付完成按钮,都会跳转到Safari浏览器,而不会如安卓一样跳回app,除非app使用微信支付SDK。若坚持要使用H5微信支付,可以在APP中设置URL Schemes ,通过在浏览器中打开URL Schemes链接来让浏览器弹出跳回app的弹框。URL Schemes链接如:testapp://

2、H5前端在UIWebView中调用相册,出现多选问题

在webView中H5调用系统相册,会出现图片多选的问题,
解决办法:1、将webVIew换成WKWebView;2、调用原生app相册,不通过<input>标签来调用相册。

3、H5前端使用-webkit-overflow-scrolling: touch属性,使滑动顺畅,导致切换菜单时出现白屏

解决方法:给webView添加手势,在触发手势操作的时候,判断scrollView是否为UIWebOverflowScrollView,若是重新布局,例子如下:

//增加手势 解决白屏问题

UITapGestureRecognizer *myTap = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(handleSingleTap:)];
[self.webview addGestureRecognizer:myTap];
myTap.delegate = self;
myTap.cancelsTouchesInView = NO;`

-(void)handleSingleTap:(UITapGestureRecognizer *)sender{
//CGPoint gesturePoint = [sender locationInView:self.view];
UIView *scrollView = self.webview;
while ([scrollView.subviews count]) {
scrollView = scrollView.subviews[0];
if ([scrollView isMemberOfClass:NSClassFromString(@"UIWebOverflowScrollView")]) {
CGRect frame = scrollView.frame;
// frame.origin.x = 0;
scrollView.frame = frame;
break;
}
}
}

-(BOOL)gestureRecognizer:(UIGestureRecognizer *)gestureRecognizer shouldRecognizeSimultaneouslyWithGestureRecognizer:(UIGestureRecognizer *)otherGestureRecognizer
{
return YES;
}

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 175,079评论 25 709
  • 发现 关注 消息 iOS 第三方库、插件、知名博客总结 作者大灰狼的小绵羊哥哥关注 2017.06.26 09:4...
    肇东周阅读 14,194评论 4 61
  • 好吧,我碰到的是路径原因导致的,直接拖H5文件到工程中或者把H5文件放入工程文件然后再拖到项目左侧工程列表一栏都会...
    落小絮阅读 4,274评论 0 0
  • 老师,是一份神圣而庄严的职业,她哺育了万千学子,培养了祖国摇篮。 小时候,当老师问我们的梦想是什么的时候,我想过做...
    神月新一阅读 4,863评论 0 0
  • 《不定》这是怎样的一首歌 出现的恰到好处 是这样的不定 让我变得不像自己 耳机里开始一遍接着一遍的循环,一首歌...
    失迅阅读 2,854评论 0 0