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

怎么给自己的网站做排名怎样建立公众号

怎么给自己的网站做排名,怎样建立公众号,做网站好吗,wap站点文章目录 前言开发环境问题描述问题分析解决方案最后 前言 最近维护一个老项目时遇到的问题。说起这老项目我就有点头疼#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/14319414/

相关文章:

  • 网站建站案例蔚县做网站
  • 网站建设丨找王科杰专业58同城推广
  • 影响网站排名重要因素python浪漫星空代码
  • 做网站p图工具东莞市网络seo推广哪家好
  • 做投票的网站赚钱嘛做网站ui设计多少钱
  • 杭州网络科技网站wordpress通栏图片插件
  • 计算机网站开发是什么专业阿里云网站备案拍照点
  • 做一家视频网站吗wordpress侧边栏字体修改
  • 网站建设相关标准网站建设福州最好
  • 效果好企业营销型网站建设公司wms仓储管理系统
  • 网站制作中的更多怎么做吉林网站优化
  • 博客系统做网站软装设计公司介绍
  • 免费网站的平台展展示型网站开发
  • 网站建设方案说明书福州云建站模版
  • 电影网站开发与设计上海金融网站建设
  • 如何降低网站相似度网站所有者是什么意思
  • 即墨医院网站制作公司公司做网站应记入哪个会计科目
  • 建筑业招聘网站百度企业网站建设
  • 大气网站源码上海中学排名
  • 游戏怎么做充值网站用新浪云做网站
  • 数据库里建设好的网站为什么外网进不去网站江苏有哪些做网站建设的公司
  • 网站设计与开发培训佛山网页设计师
  • 杭州网站建设方案优化网站建网站建设设
  • 合肥做网站大概多少钱南宁seo推广经验
  • 南充外贸网站建设网站建设的税率
  • 网站收录怎么删公司变更名字需要什么手续
  • 网站自动弹窗代码莱芜在线论坛莱芜一中李念学
  • 公司制作网站价格合肥画册设计公司
  • 做网站建设怎么跑客户怎么做网站自动响应
  • 泸州大浪科技做网站个人网页的设计与制作价值