问题标签 [gcdwebserver]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
ios - 同一 dispatchQueue 中的“Dictionary.subscript.getter”均失败
我在 iOS 上有一些生产崩溃,如下所示:
这是有问题的代码(该区域的所有代码都是 Swift5):
请注意,这callbackRunQueue
是一个串行队列。
在 中检索的唯一字典值callbackRunQueue
是self.bodyCompletionBlocks
:
我发现了一些关于这个错误的引用,但他们都说这可能是一个多线程访问问题。
但是,在我的代码中,只有 3 个地方可以访问self.bodyCompletionBlocks
,并且它们都在callbackRunQueue.async
orcallbackRunQueue.sync
块内。另请注意,其中一些代码在 GCDWebServer 的线程内运行,但正如我所提到的,我始终确保代码在我的callbackRunQueue
队列中运行,所以我认为这与 GCDWebServer 无关。
我认为将线程敏感代码包含在串行队列的异步或同步块中可以防止这样的多线程访问问题。
有任何想法吗?
谢谢!
ios - 启动本地服务器 iOS 并将其加载到 WKWebView
我发现以下库可以在本地启动服务器。
例如,我正在使用swifter
. 它确实为 iOS 编译。
我还添加了代码来启动本地服务器,如下所示。
另外,如果我将它提交给苹果,是否有可能因为启动本地服务器而被拒绝?
ios - 具有自定义主机名的本地服务器
是否可以在 iOS 中使用自定义主机名托管本地服务器?
我正在尝试创建一个需要本地服务器的应用程序,我尝试了不同的库来托管 GCDWebServer 和 Telegraph 等本地服务器。但是没有一个库可以选择提供自定义接口名称。
而不是http://localhost:4000/home
,我想拥有http://mybookslibrary.com/home
可能吗?是否有任何库支持实现此行为?
gcdwebserver - GCDWebServer:接收 API 请求时如何返回 JSON 数据
该场景将是应用程序托管一个 GCDWebServer,并且当它接收到一个 API 请求(如“GET”HTTP 请求)时 - http://serverURL:8080/search/brand?query=benz&page=1
. 然后将带有 JSON 格式数据的响应返回给发送者。
我想我应该使用GCDWebServerDataResponse(jsonObject: contentType:)
.
但是,我有两个问题:
我应该如何构建响应数据的 json 文件。我应该手动快速创建它还是只在项目中保存一个 json 文件。在 GCDWebServer 中配置 json 数据的通用或正确方法是什么?
我的请求包括一个查询字符串(“query=benz”),如何使用
webServer.addHandler
. 就我而言,我需要根据搜索查询字符串返回不同的过滤数据。
经过我自己的一些研究和测试,我发现我可以从 GCDWebServer 处理程序的请求中获取query
&参数。page
如下代码所示,我不确定它是否适合实际产品环境。但根据我的测试,它完全有效。
swiftui - SwiftUI:与 viewDidLoad 和 viewWillDisappear 等价的东西是什么
我曾经把 GCDWebServer 的start()
andstop()
放在viewDidLoad
and中viewWillDisappear
。
现在在 SwiftUI 中,我应该把它们放在什么位置?我尝试将服务器 init() 放入scene(_ scene: UIScene, willConnectTo
,并将服务器 deinit() 放入sceneDidEnterBackground(_ scene:
.
启动应用程序后,服务器启动成功,当我将应用程序推送到后台时,服务器停止。那工作得很好。但是当应用程序再次返回前台时,服务器不会再次启动。
编码:
javascript - iOS -WKWebView - 从本地主机目录/文件(.js 和资产)加载内容
我想在 WKWebView 中运行本地 HTML 文件。然后我想使用来自应用程序包中的本地目录或应用程序文档目录中的路径的一些本地文件(.js 和资产)然后在我的 localHost 上提供它们。看起来我从本地目录加载文件时遇到问题。
我创建一个具有特定端口(8090)的本地 Web 服务器: GCDWebServer 这是我加载到 WKWebView(已加载)的初始文件:
结果:尝试获取文件时出现 501 错误
objective-c - 重定向到index.html后如何传递参数?
试了很多方法,都传不上参数。</p>
重定向到 index.html 后,如何向 index.html 传递参数???
ios - GCDWebServer:使用真 iPhone 时无法打开主页
我有一个使用 GCDWebServer 的 GCDWebUploader 将文件上传到应用程序的旧应用程序。我将实现代码复制到一个新项目中。
问题:在这个新项目中,GCDWebServer 的主页可以在 iOS 模拟器中打开,但在真 iPhone 中无法连接。
环境: Xcode 12.2,iOS 14 CocoaPods
这很奇怪,因为我已经有了一个可以工作的应用程序。所以我做了一些检查:
- 首先,旧应用程序正常工作。表示可以打开主页。
- 所有设备都在同一个wifi下。
- 尝试打开
http://192.168.1.5/
或http://192.168.1.5:80
在浏览器中,safari 说“无法打开页面,因为服务器没有响应”,但是我可以192.168.1.5
在终端中成功 ping。 - 重新启动我的 iPhone
- 比较两个项目之间的 info.plist
没有结果!你们会建议我错过了什么,也许是 Xcode 中的一些配置以允许 HTTP 通信或启用一些功能?
控制台中的内容:
编码:
ios - 使用 JavaScript 访问 WKWebView 中的本地文件
我有一个 iOS 应用程序,其中部分逻辑是用JavaScript
. 我创建了一个WKWebView
加载初始.js
文件的位置,但是在执行时,它需要从本地资源中读取其他文件。问题是我错过了如何实现这一目标的概念。
我已经尝试将每个单独的文件一个接一个地加载Swift
到其中,webView
但是手动加载的文件太多了。
不过,也许有一个 http 服务器可以Swift
访问项目文件。我找到了这样或这样的解决方案。
一种方法看起来很棒,但即使我这样做了,我仍然无法从我的 Xcode 项目结构中访问文件和文件夹。我创建了一个基本的 http 服务器和一个 DAV 服务器,添加了GET
处理程序等。
也许我在设置它时做错了,但最后当我创建一个 http 对象时server
,我仍然可以从我webView
的 athttp://192.168.0.11:8080
所以确保它已正确初始化并正常工作。
gcdwebserver - GCDWebServer 将数据从服务器发布到客户端
我在我的 iOS 应用程序中使用 GCDWebServer 作为数据服务器。iOS 应用程序中有一些值会定期更新,目前我一直从客户端发送获取请求以获取新值。
有没有办法在更新值而不是一直发送获取请求时将数据从 GCDWebServer 发布到客户端?
谢谢