我已经阅读了有关如何打开应用程序中存储的mobileconfig文件的问题(Unable to open mobileconfig file in Safari ios devices[resolved]) 我需要在我的应用程序中做同样的事情,但我不知道如何使服务器在后台运行我尝试使用CocoaHTTPServer和GCDWebServer,但在两者中我需要wifi连接来制作服务器。我需要做一个本地服务器来模拟没有网络的URL来启动.mobileconfig 如果有人能帮助我,我将非常感激。 谢谢!
答案 0 :(得分:0)
Swift 4.0 / Swift 5.3答案
替换您当前的服务器初始化代码,如下所示
webServer.start(withPort: 8080, bonjourName: "GCD Web Server")
使用下面的代码
let options:[String : Any] = ["Port" : 8080, "AutomaticallySuspendInBackground" : false]
try! webServer.start(options: options)
它只是用不同的方法初始化服务器。
说明:
webServer.start(options: [String : Any])
属性代替用于初始化服务器的webServer.start()
属性。GCDWebServerOption_AutomaticallySuspendInBackground
选项设置为NO
)info.plist
中设置Application does not run in background
值YES
(如果您没有在{{1 }})答案 1 :(得分:0)
大概您希望这样做是为了让 Safari 或 WebKit 浏览器(如 Chrome/Firefox)中的网站能够访问由您在 iOS 上运行的服务器托管的信息。
虽然 Apple Review 不会让您在后台运行这样的过程超过几分钟,但从 iOS 15 开始,您将能够实现您想要的!
终于,Safari Web Extensions 出来了。在真正的 Apple 时尚中,它们将只包含整个 Web 扩展标准的一个子集,但您将能够向它们移植相当多的内容。它们还包含 send messages to your app from Javascript, and vice versa 的方法。也称为请求 ;-)
所以你基本上可以让用户安装你的应用程序和 Safari Web Extension,然后你的扩展程序可以与你的应用程序扩展程序通信:)
完成类似事情的另一种方法是App Clips in Safari。他们会为你的应用显示一个横幅,它可以下载并打开一些界面,而无需从应用商店安装。这是一种更笨拙的体验,但在您的应用尚未安装时也可以使用!