首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

html页面资源的WKWebView decidePolicyForNavigationAction

WKWebView是苹果公司推出的一种用于iOS应用程序中显示网页内容的控件。它是基于WebKit引擎的一种高性能的浏览器控件,支持HTML、CSS和JavaScript等前端技术,可以加载和显示网页,并提供了与网页交互的能力。

decidePolicyForNavigationAction是WKWebView的一个代理方法,用于决定是否允许加载某个请求的网页。在该方法中,开发者可以根据自己的需求对请求进行处理,例如拦截某些特定的URL请求,或者在加载之前进行一些额外的处理操作。

该方法的参数navigationAction包含了请求的相关信息,例如请求的URL、请求的类型、请求的来源等。开发者可以根据这些信息来判断是否允许加载该请求的网页。

在决定是否允许加载请求的网页时,开发者可以返回一个WKNavigationActionPolicy枚举值,有以下几种选项:

  • .cancel:取消加载该请求的网页。
  • .allow:允许加载该请求的网页。
  • .allow:允许加载该请求的网页,并在加载之前进行一些额外的处理操作。

WKWebView decidePolicyForNavigationAction方法的应用场景包括但不限于:

  • 拦截某些特定的URL请求,例如屏蔽广告、过滤敏感信息等。
  • 对请求进行一些额外的处理操作,例如添加请求头、修改请求参数等。
  • 根据请求的来源进行不同的处理,例如对内部链接和外部链接进行不同的处理。

腾讯云相关产品中,与WKWebView decidePolicyForNavigationAction方法相关的产品包括:

  • 腾讯云移动浏览器(Tencent Mobile Browser):腾讯云提供的移动浏览器解决方案,支持WKWebView控件,并提供了丰富的API和功能,方便开发者进行网页加载和交互操作。产品介绍链接:https://cloud.tencent.com/product/tmb

请注意,以上答案仅供参考,具体的产品选择和推荐应根据实际需求和情况进行评估和决策。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

分享超详细 WKWebView 开发和使用经验

readAccessURL 参数:允许访问资源路径,如果是在 Bundle 中加载本地 HTML,则需要设置该 HTML 所在 Bundle 路径,路径设置好后,该目录在 WKWebView 中被视为沙盒目录...,HTML 就可以访问同级目录下资源文件。...html-demo 目录的话,这样既能访问 common 目录下资源,也能访问 relative-common 下资源。...通过 [WKWebView loadRequest:] 方法访问 index.html 的话,仅能访问当前页面所在目录下相对路径资源,无法访问目录外资源,例如上例中,index.html 仅能访问...通过 [WKWebView loadData:] 和 [WKWebView loadHTMLString:] 方法仅能加载当前HTML内容,无法加载资源文件,这种加载模式下,由于不需要访问其他路径下资源

4.7K30

​# iOS WKWebView适配(基础篇)

为了兼容iOS8js通信,也可以在这里拦截url做bridge分发 - (void)webView:(WKWebView *)webView decidePolicyForNavigationAction...内置包就是bundle包,就是将bundle包路径拼接好,然后请求沙盒方式读取页面 自定义了一个url头部"bundle://",在请求时候做"file:///"头部替换 4.加载源代码 直接把html...文件读出来以后,以页面内容方式去读取 [self.wkWebView loadHTMLString:htmlString baseURL:nil]; 5.离线资源一点思考 利用离线加载这一特性,我们可以通过服务端资源打包成本地资源包...(zip包),通过服务器比对方式下载资源包,解压后放在本地指定沙盒目录,随后通过wkwebview加载本地方式打开页面。...对于资源包要求 前后端分离(目前前端基本如此) 资源包加载需要相对路径,大部分在线资源都是通过cdn,如何通过cdn去转换成资源包并打包进来,也是一个挑战,或者直接用cdn包也是可以 要考虑降级策略

3.7K30

iOS WebView Hybrid 框架设计

作为一种混合开发模式,Hybrid APP 底层依赖 Native 端 Web 容器(UIWebview 和 WKWebview),上层使用前端 Html5、CSS、Javascript 做业务开发,...这种开发模式非常适合业务快速拓展和迭代,在不发版本前提下直接更新线上资源,受到不少公司青睐与关注。...差),这里也不能把 WKWebView 一棒子打死不用,对于那些对无需预加载和缓存页面,可以为前端提供参数(比如 wkwebview=true)让前端自己去选择是否使用 WKWebView,所以这里需要对...#pragma mark - WKNavigationDelegate- (void)webView:(WKWebView *)webView decidePolicyForNavigationAction...Bridge设计 Hybrid APP 交互无非是 Native 调用前端页面的 JS 方法,或者前端页面通过 JS 调用 Native 提供接口,两者交互桥梁皆 Webview: ?

1.6K10

WKWebView不显示JSAlert,Confirm,TextInput弹框解决方法

最新项目使用网页加载页面的基本上都由UIWebView转到WKWebView了,然后刚刚才发现用了WKWebView之后不会弹窗提示了,查了一下知道原来WKWebView默认禁止了下面的跳转: 打开itunes.apple.com...跳转到App Store, 拨打电话, 唤起邮箱等一系列操作 JSAlert,Confirm,TextInput弹框 解决方法: 首先实现WKUIDelegate代理方法 解决唤不起打电话和跳转系统应用方法...- (void)webView:(WKWebView *)webView decidePolicyForNavigationAction:(WKNavigationAction *)navigationAction...) { if ([app canOpenURL:URL]) { [app openURL:URL]; // 一定要加上这句,否则会打开新页面...,Confirm,TextInput不弹框方法 #pragma mark - Alert弹窗 - (void)webView:(WKWebView *)webView runJavaScriptAlertPanelWithMessage

6.8K30

WebKit 历史栈缓存策略探索

背景 在一个新业务方案实施过程中,发现数据上存在较大差异,而这个差异是 WKWebView 应用方式不同带来。...历史栈缓存策略简述 WKWebView 可以通过goBack/goForward接口进行历史栈切换,切换时有一套缓存策略,命中时能省去请求网络时间。...在切换页面时,真正发起网络请求或使用缓存之前,会进行一些决议,大家熟知 WKNavigationDelegate -webView:decidePolicyForNavigationAction:...这么一看 WebKit 处理似乎是合理,因为replace()前页面已经回不去了,但不知为何直接简单粗暴干掉replace()前页面归属 WebProgressProxy 关联所有历史栈缓存...WKWebView 切换页面时,发生cross-site + client-side redirect 时会清理当前 WebProgressProxy 关联所有历史栈缓存,后续切换到这些历史栈时都需要重新请求网络

77520

iOS下JS与OC互相调用(二)--WKWebView 拦截URL

1.创建WKWebView,加载本地HTMLWKWebView创建有几点不同: 1.初始化多了个configuration参数,当然这个参数我们也可以不传,直接使用默认设置就好。...如果在HTML中要使用alert等弹窗,就必须得实现UIDelegate相应代理方法。 3.在iOS 9之前,WKWebView加载本地HTML会有一些问题。...(不能加载本地HTML,或者部分CSS/本地图片加载不了等) 我这里创建WKWebView示例代码是这样: WKWebViewConfiguration *configuration = [...HTML内容,跟上一篇UIWebView中介绍HTML内容一样,所以关于HTML内容就不再讲解了。...#pragma mark - WKNavigationDelegate - (void)webView:(WKWebView *)webView decidePolicyForNavigationAction

3.4K50

iOS 原生和H5混合开发总结

只用了原生WKWebView。这里就不具体讲怎么使用WKWebView。 思路: 1.写一个自定义webVIew继承WKWebView。...问题 1.之前和Android讨论把所有的跳转都通过这个方法监听 - (void)webView:(WKWebView *)webView decidePolicyForNavigationAction...所以后来采用和js交互方式进行跳转 2.iOS给JS提供了一个页面返回方法,但是在测试过程中发现,这个方法会无限调用,导致页面一直pop; 调用结果是因为iOS这边使用了一个通用页面,比如两个页面一个页面是...ViewController1,跳转到下一个页面ViewController2,这两个ViewController其实都是一个通用H5Controller,初始化时候都注册了handleBack方法...H5根据定位信息来显示不同页面,所以和JS注册了一个方法。在网速很快时候都没有发现问题。但是如果定位返回很快,但是访问H5那边慢就会导致JS方法在没有注册情况下就调用了JS所以没有效果。

2.1K20
领券