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

iOS的WebView——WKWebView

前言 在iOS8中,苹果推出了WKWebView。WKWebView有一个突出特点,就是内存占用少。 但作为一个全新的WebView,API相比于之前的UIWebView肯定会有所不同。...WKWebView的设置 WKWebView的主要设置项都在configuration成员中(比如是否允许浏览器手指缩放,h5的浏览器能否自动播放等)这些都属于浏览器本身的设置项。...[self.webview.configuration allowsPictureInPictureMediaPlayback]; // 网页中的多媒体是否需要手势才能开始播放(iOS 10)...WKNavigationDelegate 如命名,这个是WKWebView的导航的代理。它控制了WKWebView在加载一个页面流程中的各个关键时间节点的。...,js会尝试加载某个URL,客户端在加载前拦截这个URL,通过解析这个URL识别它的内容,调用相应的原生方法,并阻上浏览器加载这个URL。

3.6K20
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    Xamarin 从零开始部署 iOS 上的 Walterlv.CloudKeyboard 应用

    因为我没有在 iOS 上找到任何一款稍微能用的输入法,因此只能拜托太子帮我开发一款应用了。太子很给力,帮我开发完成了,但现在的问题就是我如何在我的手机上部署。...这一步的难度最大的地方在于了解自己的开发者团队名或组织名是什么 在 Walterlv.CloudKeyboard 项目上包含了两个项目,一个是 iOS 键盘应用,另一个是键盘扩展。...编辑捆绑包标识符,内容就是在原先的 Walterlv.CloudKeyboard.iOS 项目的捆绑包标识符基础上的后面加上 .Keyboard 如下图 ?...上面这一步详细请看 Xamarin iOS 切换开发者账号之后的签名标识和预配配置文件更新方法 也就是说在发现这一步没有任何可以选择的时候,问题的原因就是没有在 XCode 的签名里面进行生成,需要确定在...删除掉一开始部署的占坑应用 ? 重新回到 VisualStudio 点击构建部署,此时在手机上可以看到 Xamarin 的图标和部署上的应用 ?

    1.1K10

    浅谈iOS中的WKWebView添加cookie

    https://blog.csdn.net/u010105969/article/details/53942862 最近开发新功能,其中有加载网页的需求,而最近又了解到了WKWebView,说是耗内存小...因为需要与网页进行交互,而之前使用UIWebView发现与网页的交互并不是很好,于是这次决定使用WKWebView。...在体会着使用新控件且更好的控件的喜悦的时候,一个新的问题出现了--加载网页,后台无法及时获取cookie。后台无法及时获取cookie,在加载网页的时候就无法加载到正确的数据。...(需要多加载几次网页,才能加载到正确的数据) 在查阅相关资料后,发现在使用WKWebView的时候需要我们手动添加cookie到网页中。...在使用WKWebView的时候手动添加cookie: NSMutableDictionary *cookieDic = [NSMutableDictionary dictionary]; NSMutableString

    2.2K10

    Xamarin.iOS中的CoreML简介

    CoreML为iOS带来了机器学习 - 应用程序可以利用训练有素的机器学习模型来执行从问题解决到图像识别的各种任务。...该介绍包括以下内容: CoreML入门 将CoreML与Vision框架结合使用 CoreML入门 这些步骤描述了如何将CoreML添加到iOS项目中。...特征提供程序类的行为类似于字符串和字典MLFeatureValue,其中每个特征值可以是简单的字符串或数字,数组或数据,或包含图像的像素缓冲区。...单值功能提供程序的代码如下所示: C#复制 使用这样的类,可以以CoreML理解的方式提供输入参数。功能的名称(例如myParam代码示例中)必须与模型所期望的相匹配。...原文: https://docs.microsoft.com/en-us/xamarin/ios/platform/introduction-to-ios11/coreml#coreml

    2.7K10

    iOS小技能:WKWebView与JS的交互

    前言 由于目前UIWebView 已经被抛弃了,因此推荐使用WKWebView的WKScriptMessageHandler实现iOS与JS交互 WKWebView是Apple在iOS8推出的Webkit...但只有在整个webView加载完成之后调用此方法才会有响应 2.1 执行JS iOS使用WKWebView的-evaluateJavaScript:completionHandler:方法执行拼接好的JS...端使用 WKWebView 进行渲染的,WKWebView 在内部采用的是分层的方式进行渲染,它会将 WebKit 内核生成的 Compositing Layer(合成层)渲染成 iOS 上的一个 WKCompositingView...WKWebView 这么做是为了可以让 iOS 上的 WebView 滚动有更流畅的体验。...此时,修改这个 DOM 节点的样式属性同样也会应用到原生组件上。因此,「同层渲染」的原生组件与普通的内置组件表现并无二致。

    7.3K30

    iOS——GCD的死锁案例

    在项目中,用GCD的时候非常多,但是我最近脑子里一直在问自己一个问题,死锁是什么。惭愧的是这个当初清晰的概念现在愈加模糊,考虑到自己并没有专门整理过死锁的文章,所以写一篇技术文章来帮助自己梳理概念。...GCD提供了功能强大的任务和队列控制功能,相比于NSOperationQueue更加底层,因此如果不注意也会导致死锁。 所谓死锁,通常指有两个线程A和B都卡住了,并等待对方完成某些操作。...死锁的具体案例 接下来所有的案例代码,我都会用Swift3的语言重写一遍,为了帮助自己加深对Swift3的语言的理解。...但是任务3所在的同步线程会阻塞,所以任务4必须等任务3执行完以后再执行。这就又陷入了无限的等待中,造成死锁。...总结 在总结完这些GCD死锁的情况的以后,我觉得脑子里关于GCD中死锁的概念也逐渐清晰了。以后在项目中也会运用的时候也会更加注意。

    2K30

    iOS开发中的WKWebView与JS的交互

    /u010105969/article/details/53189934),可当时用来展示网页的控件是UIWebView,而在iOS8之后苹果推出了WKWebView,此控件也能用来显示网页,可与JS的交互却与...JS代码: (贴下判断iOS还是安卓的代码: varu = navigator.userAgent; varisAndroid = u.indexOf('Android') > -1 || u.indexOf...+Mac OS X/); //ios终端 alert('是否是Android:'+isAndroid); alert('是否是iOS:'+isiOS); if(isAcdroid){  }else...在点击前三个按钮的时候会调用方法: // 警告框 - (void)webView:(WKWebView *)webView runJavaScriptAlertPanelWithMessage:(NSString...注意:在利用UIWebView展示网页的时候我们如果要想与JS进行交互那么我们就得获取JS代码中的方法名,而我们在使用WKWebView的时候就不用了。

    2.3K20

    Xamarin iOS 部署版本大于手机的系统版本

    但是作为开发者,我在使用 Xamarin 部署我的云输入法,在第一步创建的时候需要我使用 XCode 新建一个项目,而新建的项目默认都是需要使用更新版本的系统,此时部署将会失败。...本文告诉大家一个简单的方法解决这个问题 如我师傅在 使用 Xamarin 在 iOS 真机上部署应用进行调试 博客上讲的,苹果为了提升开发者门槛,限制了 VS 创建应用的权限。...苹果:这不是我说的,你不要瞎说 在使用 VS 部署应用之前,需要先在 XCode 中新建一个空白 iOS 项目,细节还请看 使用 Xamarin 在 iOS 真机上部署应用进行调试 而新建的项目在 2020.10...但我的手机是 13.1.2 版本,我不想升级系统,强行选择手机然后部署将会提示下面代码 lindexi’s iOS 13.1.2 doesn’t match cloudkeyboard.app’s iOS...一个简单的解决方法就是使用文本编辑工具将 iOS 项目代码里面所有的 14.0 替换为 13.1 就可以了 如果替换之后,发现跑不过,如提示 @main 是新版本才创建的功能,那一定是你的项目创建的模版选错了

    97710

    iOS上架的坑

    有3D-touch机型的坑昨天在上线的时候遇到了一个坑,最后导致的结果是找了好几个小时,直接到半夜才能上线。...入正题: 坑是:项目运行在456上没什么问题,但是在6S以上的机型就有点击事件不响应的情况出现,我的是直接登录界面就点击按钮都没有反应,有的时候轻点就有可能有响应,但是响应很慢。...首先自己从点击事件的不响应开始去排查,发现响应事件也开着,也不是触摸范围的问题,再者是怀疑是不是VC的层级结构的问题,开始尝试各种跳转,还是在6S上没有反应,甚至新建了一个类控制器来跳转测试,上面就丢了一个按钮...后来在百度中无意看到一个说法:项目中对UIButton有分类的,有可能会对3D-Touch的机型有影响的,我的天啊,然后检查项目,把关于UIButton的扩展去掉后,项目正常了。...或许是因为我的那个UIButton的分类里加了touch方法才导致这个结果,而没有写touch方法的UIButton的分类应该是没有影响的。

    26420

    iOS小技能:UIWebView 被拒的解决方案(用更安全的WKWebView替代UIWebView)

    2、移除/升级含UIWebView的第三方SDK(例:AFNetworking) 3、使用WKWebView替代UIWebView 4、WKWebView与JS交互案例(点击页面图片,调用iOS方法进行图片放大显示...比UIWebView更安全 基于NSURLProtocol实现iOS应用底层所有网络请求拦截(含网页ajax请求拦截【不支持WKWebView】NSURLProtocol 只能拦截 UIURLConnection...、NSURLSession 和 UIWebView 中的请求; 对于 WKWebView 中发出的网络请求也无能为力,如果真的要拦截来自 WKWebView 中的请求,还是需要实现 WKWebView...以下使用了NJKWebViewProgress作为进度条, 因此对于上架审核没有影响。...UIWebview to WKWebView #4441 #4.x iOS 9 macOS 10.10 watchOS 2.0 tvOS 9.0 Xcode 11+ is required

    3.3K20

    记使用WKWebView修改user-agent在iOS 12踩的一个坑

    随着摒弃了对iOS老系统的支持,项目也开始逐步开始转向WKWebView,本想着新系统应该能填一些WKWebView的坑,结果发现还是还是坑不断,这次在iOS12又遇到一个神坑。...在iOS 10/11上面,这段代码执行都好好的,并且也没什么问题。结果现在在iOS 12beta版本里面突然不生效了,自己追加的userAgent没有添加成功。...为了验证下,我在WKWebView的delegate方法webView: didFinishNavigation:里打印customUserAgent和通过js方法获取的userAgent,结果发现两者真的是不一样的...iOS 12是不生效的,猜测原因应该是一旦实例化一个WKWebView并且调用了evaluateJavaScript: 更新其userAgent不生效。...但是一旦我们刷新下当前web页面,即调用webview的reload方法,这个customUserAgent就生效了。所以这应该是苹果iOS12系统的一个bug。

    10.1K50

    移动端跨平台技术总结

    Xamarin Xamarin 可以使用 C# 来开发 Android 及 iOS 应用,它是从 Mono 发展而来的,目前看起来商业运作得不错,相关工具及文档都挺健全。...前面提到微软提供了将 Objective-C 编译在 Windows Phone 上运行的工具,在对 Android 的支持上我没找到的详细资料,所以就暂时认为它是虚拟机的方式,从 Astoria 项目的介绍上看它做得非常完善...,所以无法使用 JIT 来优化性能,如果 iOS 开放,或许哪天有人开发一个像微软那样能直接在 iOS 上运行 Android 应用的虚拟机,就不需要跨平台开发了,大家只需要学 Android 开发就够了...API,也避免了不同操作系统版本下 JS 引擎不一致带来的问题,但后果是生成文件的体积变大和在 iOS 下性能不如 WKWebView。...WKWebView 是基于多进程实现的,它在 iOS 的白名单中,所以能支持 JIT。它的使用体验很不错,做到了一键编译运行,而且还有 MVVM 的支持,能进行数据双向绑定。

    1.7K50
    领券