当前位置: 首页 > news >正文

广州做礼物的网站网络营销推广是什么

广州做礼物的网站,网络营销推广是什么,小程序搭建制作,个人怎么做课程网站文章目录 前言开发环境问题描述问题分析解决方案最后 前言 最近维护一个老项目时遇到的问题。说起这老项目我就有点头疼#xff0c;一个快十年前的项目#xff0c;这么说你可能不觉得有什么#xff0c;但是你想想Swift也才发布不到十年#xff08;2014年6月发布#xff0… 文章目录 前言开发环境问题描述问题分析解决方案最后 前言 最近维护一个老项目时遇到的问题。说起这老项目我就有点头疼一个快十年前的项目这么说你可能不觉得有什么但是你想想Swift也才发布不到十年2014年6月发布现2023年12月。 开发环境 Xcode: 15.1iOS: 17.2 问题描述 项目运行在iOS 17.2设备时应用内网页无法成功获取设置后的UserAgent。 项目中设置UserAgent的关键源码 [self.webView evaluateJavaScript:navigator.userAgent completionHandler:^(id result, NSError *error) {NSString *userAgent [NSString stringWithFormat:%, result];NSString *newUserAgent [userAgent stringByAppendingString: App/1.0.0];[[NSUserDefaults standardUserDefaults] registerDefaults:{UserAgent: newUserAgent}]; }];问题分析 从项目源码看设置UserAgent是通过NSUserDefaults实现的。大致操作如下 首先应用启动后创建一个WKWebView实例对象无需加载任何网页然后通过navigator.userAgent获取当前的UserAgent并修改接着调用registerDefaults方法将修改后的UserAgent注册到NSUserDefaults成为应用的默认设置最后销毁该WKWebView实例对象 经过以上操作后续创建WKWebView实例对象时都能从NSUserDefaults中获取到修改后的UserAgent用于初始化从而实现全局设置。需要注意一点registerDefaults方法设置默认值的操作不会进行持久化存储所以应用每次启动都需要设置一遍。 虽然理了一遍设置逻辑感觉没什么问题但是这个方法有点老了现在一般通过customUserAgent属性设置难道这个方法过时了 为了排除其他可能存在的干扰新建一个iOS项目用于测试源码如下 import UIKit import WebKitclass ViewController: UIViewController, WKNavigationDelegate {private let htmlString htmlheadmeta nameviewport contentwidthdevice-widthstylebutton {font-size: 24px;}/stylescriptfunction getUserAgent() {var userAgent navigator.userAgent;var paragraph document.createElement(p);paragraph.textContent UserAgent: userAgent;document.body.appendChild(paragraph);}/script/headbody styletext-align: center;button οnclickgetUserAgent()获取 UserAgent/button/body/htmlprivate var webView: WKWebView!override func viewDidLoad() {super.viewDidLoad()// 在WKWebView初始化前设置UserAgentUserDefaults.standard.register(defaults: [UserAgent: App/1.0.0])// 创建WKWebViewlet webViewConfiguration WKWebViewConfiguration()webView WKWebView(frame: view.bounds, configuration: webViewConfiguration)webView.navigationDelegate selfview.addSubview(webView)// 加载HTMLwebView.loadHTMLString(htmlString, baseURL: nil)} }iOS 17.2测试结果 iOS 16.4测试结果 实测iOS 17.0和iOS 17.2测试结果一样现在可以确定从iOS 17开始通过NSUserDefaults设置UserAgent都无法生效。初步判断这个设置方法在iOS 17及以上过时了个人猜测可能是WKWebView初始化时不再从NSUserDefaults获取默认值导致的今天天太冷了实在扛不住后面有机会再翻翻相关源码尝试验证猜测。 既然这个方法失效了那在iOS 17上通过customUserAgent属性设置能正常生效吗 对前面的测试源码做简单修改页面加载完成后自动获取一次未修改的UserAgent然后再修改UserAgent并通过customUserAgent属性设置接着手动点击按钮获取一次UserAgent最后对比两次获取结果判断是否设置成功。 import UIKit import WebKitclass ViewController: UIViewController, WKNavigationDelegate {private let htmlString htmlheadmeta nameviewport contentwidthdevice-widthstylebutton {font-size: 24px;}/stylescriptfunction getUserAgent() {var userAgent navigator.userAgent;var paragraph document.createElement(p);paragraph.textContent UserAgent: userAgent;document.body.appendChild(paragraph);}/* 页面加载完成后获取一次UserAgent */window.onload function() {getUserAgent();};/script/headbody styletext-align: center;button οnclickgetUserAgent()获取 UserAgent/button/body/htmlprivate var webView: WKWebView!override func viewDidLoad() {super.viewDidLoad()// 创建WKWebViewlet webViewConfiguration WKWebViewConfiguration()webView WKWebView(frame: view.bounds, configuration: webViewConfiguration)webView.navigationDelegate selfview.addSubview(webView)// 加载HTMLwebView.loadHTMLString(htmlString, baseURL: nil)}func webView(_ webView: WKWebView, didFinish navigation: WKNavigation!) {// 获取当前的UserAgentwebView.evaluateJavaScript(navigator.userAgent) { (result, error) inguard let userAgent result as? String else {return}let newUserAgent userAgent App/1.0.0// 设置UserAgentwebView.customUserAgent newUserAgent}} }测试结果 从测试结果看通过customUserAgent属性设置UserAgent一切正常。不过这种方法不好实现全局设置每次创建新的WKWebView实例对象都需要再设置一遍。 解决方案 通过NSUserDefaults设置UserAgent改为通过customUserAgent属性设置UserAgent更多详情请参考前面的问题分析。 最后 如果这篇文章对你有所帮助点赞收藏支持一下吧谢谢 本篇文章由crasowas发布于CSDN。
http://www.hkea.cn/news/14258591/

相关文章:

  • 如何免费建网站赚钱广州建站免费模板
  • 网站开发计什么科目做网站赚钱流量
  • 有孩子做的网站广州seo网站推广顾问
  • 网站中的ppt链接怎么做网站seo分析报告案例
  • 六安网站制作公司价格河北建设工程信息交易中心
  • 有声小说网站开发网站内容与功能设计与实现的
  • 淘宝上面建设网站服装展示网站源码
  • 付费网站怎么制作网站的建立与运营
  • 怎么做时光网站免费开发游戏
  • 网站浏览器兼容性问题wordpress 文字背景颜色
  • 上传网站步骤opencart wordpress
  • 北京朝阳做网站高阳网站建设
  • 自适应好还是响应式网站好外包做的网站可以直接去收录吗
  • 网站代码快捷键win2012搭建WordPress
  • 做冷库的网站wordpress登录页面模板下载
  • 企业站网络推广定制型网页设计开发
  • 西安网站策划域名解析怎么弄
  • 免费获取源码的网站自学网站建设基本流程
  • 培训网站 建优秀企业展示网站
  • 如何看网站是html几代做的python wordpress 外链
  • 潍坊做公司网站安庆网站开发
  • 做钢材的做什么网站效果好网店运营模式有哪些
  • 做外围什么网站有客户cq网络网站
  • 谷歌网站推广公司.net网站开发书
  • 南通建网站大庆最新消息今天
  • 招聘广告模板重庆seo扣费
  • 网站接入支付宝在线交易怎么做手机下载工具app
  • 佛山搭建建网站哪家好学做网站培训机构
  • 宁波网站建设制作公司排名最好用的免费建站
  • 拍拍网的网站建设搜索引擎成功案例分析