内嵌h5,禁止长按图片保存

6 篇文章 4 订阅
5 篇文章 0 订阅
本文探讨了在移动端网页中如何使用CSS属性pointer-events和user-select来控制图片交互,避免长按保存,同时介绍了通过div遮罩层和背景实现图片保护的方法。针对不同内核浏览器和隐私需求,提供了解决方案和适用场景。
摘要由CSDN通过智能技术生成

1.pointer-events:none

img{
   pointer-events:none;
}
①适用于微信客户端的手机页面,图片被打开的情况

②缺点:会禁止掉点击事件。所以当图片有点击事件的时候,给有点击事件的图片设置pointer-events:auto;那么这个图片又可以长按保存了。
 解决办法:建议外边嵌套一层div,在div上绑定事件。
img{
   user-select:none;
   -webkit-touch-callout:none;
   -webkit-user-select:none;
   -moz-user-select:none;
   -ms-user-select:none;
}
①-webkit-touch-callout主要用于禁止长按菜单。当然针对webkit内核的浏览器。

②user-select属性是css3新增的属性,用于设置用户是否能够选中文本。

③缺点:安卓机器上可能不生效。

3.加一层遮罩层

图片上边加一层div类似于遮罩层,这样图片就不会被点击,右击或长按也不会出现如图的图片另存为的选项了。
<div class="imgBox">
    <div class="imgMask"></div>
    <img src="xx.png"/>
</div>
<style>
 .imgBox{
    position: relative;
    width: 100%;
    margin: 0 auto;
      .imgMask{
	    position: absolute;
	    z-index: 100;
	    left: 0;
	    right: 0;
	    top: 0;
	    bottom: 0;
	    opacity: 0;
	  }
	  img{
		  display: block;
		  width: 100%;
	 }
}
</style>

4.img统一用background实现。

在Objective-C开发的应用中,如果需要将内嵌的H5页面中的图片保存到用户的本地相册,可以按照以下步骤操作: 1. **从H5获取图片数据**: - 使用JavaScript从H5页面加载图片并获取其URL或者data URL (base64 编码)。 2. **创建UIImage对象**: - 如果有URL,通过`[UIImage imageWithData:]`方法从网络请求的数据创建UIImage; - 如果是data URL,先将其解码成NSData,再转换为UIImage。 3. **显示图片选择界面**: - 使用`UIActivityViewController`,它包含了保存图片到相册的功能。创建一个`UIActivityViewController`实例,设置其`activityItems`数组包含你需要保存的UIImage。 ```objective-c UIImage *image = [UIImage imageWithData:dataFromH5]; UIActivityViewController *activityVC = [[UIActivityViewController alloc] initWithActivityItems:@[image] applicationActivities:nil]; ``` 4. **请求用户授权**: - 展示`activityVC`,并处理可能出现的权限请求。用户可能会被提示是否允许应用程序访问他们的照片库。 ```objective-c [self presentViewController:activityVC animated:YES completion:^{ // 用户可以选择保存图片,这时可以根据completionHandler回调来检查结果 }]; ``` 5. **检查结果**: - 在`UIActivityViewController`完成后的`completionWithItemsHandler:`回调中检查`UIActivityDidFinishWithResult`, `UIActivityTypeSaveToCameraRoll`等活动类型,判断用户是否选择了保存到相册。 ```objective-c if ([activityVC.result isKindOfClass:UIImagePickerControllerMediaURL]) { NSURL *savedURL = activityVC.result; NSLog(@"Image saved to local album at: %@", savedURL); } ``` 请注意,上述步骤适用于iOS系统,并且需要遵守苹果的隐私政策。另外,确保你的应用已经添加了相关的NSPhotoLibraryUsageDescription描述,以便在运行时获得用户的明确许可。
评论 7
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值