我正在使用GCDWebServer并通过运行:
启动它private int getWeek(String datum) {
TimeZone zone = TimeZone.getTimeZone("Europe/Berlin");
SimpleDateFormat format = new SimpleDateFormat("dd.MM.yyyy");
// v--- set the timezone here
format.setTimeZone(zone);
Date date = null;
try {
date = format.parse(datum);
} catch (ParseException e) {
e.printStackTrace();
}
Calendar calendar = Calendar.getInstance(zone);
calendar.setTime(date);
int week = calendar.get(Calendar.WEEK_OF_YEAR);
return week;
}
从GCDWebServer检查webServer!.start(withPort: 8080, bonjourName: "Test")
日志时,我可以在两个不同的位置看到两条消息:
我被其他网址使用的设备名称而不是我在上面的代码中配置的[INFO]
这一事实所消耗,但这并不是什么大问题。
更重要的是,在实施bonjourName
GCDWebServerDelegate
之后,从那里打印webServerDidStart
仍会显示IP网址。
我还可以看到在我在日志中获得GCDWebServer 消息的 Bonjour注册完成之前调用了serverURL
。
如何获取人类可读的网址?
答案 0 :(得分:1)
要使用的属性是bonjourServerURL
。 serverURL
始终是IP地址,一旦webServerDidCompleteBonjourRegistration
委托方法被调用,bonjourServerURL
就会保存该值。我不知道为什么Bonjour网址中的主机名与bonjourName
参数值不匹配。
答案 1 :(得分:1)
这完全是关于新的本地网络隐私设置。通过在 info.plist 中添加以下内容解决了 Bonjour 的问题:
<key>NSLocalNetworkUsageDescription</key>
<string>My app uses local network</string>
<key>NSBonjourServices</key>
<array>
<string>_http._tcp</string>
</array>
答案 2 :(得分:0)
是的,Bonjour不能在真实设备上使用iOS14.x。该服务仅适用于模拟器。该框架必须进行修订。