美文网首页iOS_WebView
H5加载ios本地图片资源

H5加载ios本地图片资源

作者: 豆汁儿还是豆花儿 | 来源:发表于2020-10-19 14:27 被阅读0次

需求

需要加载一个在线的 Web,通过 JSBridge获取到 Native 的资源路径,比如 file:///private/xxxx/xxx/xx.png 把它显示在 WebView 当中。 举个例子吧: 一个 HTMLImage 标签想显示iOS 沙盒里面的资源文件。

<image src="file:///private/xxxx/xxx/xx.png"></image>

测试之后发现简单写本地路径的路子走不通。
查阅资料后发现通过 App 本地开启 Server 服务,Root 开在沙盒目录,然后通过将文件的 file协议 路径转换成本地服务路径,再给 H5 显示,经过测试完全可用。

第一步: 在 Podfile 写入(关于 GCDWebServer,一个轻量级的 AppServer 框架。)

  pod "GCDWebServer", "~> 3.0"

pod install 集成后,在用到的地方

#import "GCDWebServer.h"

GCDWebServer*_webServer = [[GCDWebServer alloc] init];
 [_webServer addGETHandlerForBasePath:@"/" directoryPath:NSHomeDirectory() indexFilename:nil cacheAge:3600 allowRangeRequests:YES];
     [_webServer startWithPort:80 bonjourName:nil];
  // 比方说文件存在Library下有一个123的文件
//  NSString *basePath = @"http://localhost/Library/Caches/hxyhd/emeeting/imageurl.png"; // 这样就可以访问到这个文件了,我只需要把我的文件名拼上localhost路径然后传给前端,他们拿到这个链接直接访问就可以拿到这个文件了

然后在H5中需要加载资源的标签里 赋值完整地址如http://localhost/Library/Caches/hxyhd/emeeting/imageurl.png 就可以了
Caches/hxyhd/emeeting/imageurl.png

问题记录

GCDWebServer不支持长链接,只要App退到后台,connect自动就stop,网页请求无法获得响应。
解决办法:

-1)开启支持后台模式:将GCDWebServer.m中的GCDWebServerOption_AutomaticallySuspendInBackground设置为NO;

-2)打开Background Modes;

-3)在AppDelegate.m写上这段代码

-(void)applicationDidEnterBackground:(UIApplication *)application{
  [[UIApplication sharedApplication]beginBackgroundTaskWithExpirationHandler:nil];;
}

相关文章

  • 2019-03-22

    iOS WKWebView 远端h5优先加载本地资源 前言:UIWebView调用远端h5页面,优先加载本地图片、...

  • iOS中使用WKWebView加载本地h5小游戏资源的做法

    iOS中使用WKWebView加载本地h5小游戏资源的做法[https://www.jianshu.com/p/d...

  • H5加载ios本地图片资源

    需求 需要加载一个在线的 Web,通过 JSBridge获取到 Native 的资源路径,比如 file:///p...

  • Flutter下实现WebView拦截加载离线资源

    在用移动设备加载H5页面时,一些公共资源如css,js,图片等如果比较大时,就需要通过拦截网络,改从本地资源加载。...

  • iOS如何让webview在native加载更迅速

    前言 我们在ios本地开发中,难免会遇到native加载h5页面缓慢的情况,可能由于h5页面中的资源过多造成的, ...

  • iOS - APP性能优化

    1:应用启动时间 应用启动时,只加载启动相关的资源和必须在启动时加载的资源。 2:本地图片加载方式 本地图片加载常...

  • iOS APP性能优化简短总结

    1:应用启动时间 应用启动时,只加载启动相关的资源和必须在启动时加载的资源。 2:本地图片加载方式 本地图片加载常...

  • iOS之APP性能优化

    1:应用启动时间 应用启动时,只加载启动相关的资源和必须在启动时加载的资源。 2:本地图片加载方式 本地图片加载常...

  • APP性能优化

    iOS APP性能优化 1:应用启动时间应用启动时,只加载启动相关的资源和必须在启动时加载的资源。 2:本地图片加...

  • 文章收藏

    iOS native 加载 H5 图片(沙盒加载html图片) socket的半包,粘包与分包的问题 Scoket...

网友评论

    本文标题:H5加载ios本地图片资源

    本文链接:https://www.haomeiwen.com/subject/fqbkmktx.html