• 前端做混合开发时 webview中打开h5页面图片不显示原因解决方案


    在做混合开发过程中,webview打开h5页面时,若h5页面是https访问的,而内部图片资源是http内容 就会存在图片不显示的问题 ;

    问题分析:在https页面请求http内容属于安全策略的一种,请求了混合资源;

          自测时,在浏览器中显示正常,实际上在控制台中已经打印警告用户了(如下),

    Mixed Content: The page at 'https://****' was loaded over HTTPS, but requested an insecure image 'http://***.png'. This content should also be served over HTTPS.
    

          在Security内部 也显示了Non-secure origins 的内容,但是资源可以正常显示。而在webview中直接就不加载该不安全资源,若想继续加载该资源需要webview进行设置,去打开该Mixed Content

    解决方案:1在android端去设置;

    mWebview.getSettings().setJavaScriptEnabled(true);//启用js 
    mWebview.getSettings().setBlockNetworkImage(false);//解决图片不显示 
    // 解决混合资源的加载
    if(Build.VERSION.SDK_INT>=Build.VERSION_CODES.LOLLIPOP) 
    settings.setMixedContentMode(WebSettings.MIXED_CONTENT_ALWAYS_ALLAW); 
    

     

    备注:接口跨域针对的是xhr请求 (包含对他封装的一些方法,axios ajax 等)

             静态资源内容不存在跨域问题,应该说是一种安全策略,https的被认为是安全的内容,http的默认non-secure

           静态资源和接口的区分 可以通过content-type查看(供参考)

  • 相关阅读:
    http://blog.csdn.net/sinat_33950284/article/details/50646622
    http://edu.csdn.net/course/detail/2798?ref=blog&loc=0
    微服务架构的分布式事务解决方案
    http://www.cnblogs.com/chenpi/p/5999707.html
    http://blog.csdn.net/hejingyuan6/article/details/47403299
    https://www.oschina.net/p/goshop2
    https://github.com/SuperMan42/MVP
    spring mvc
    http://www.iyaxi.com/2015-11-17/732.html
    场景测试
  • 原文地址:https://www.cnblogs.com/xhliang/p/12889095.html
Copyright © 2020-2023  润新知