我在WKExtendedRuntimeSession上遇到了一些麻烦。
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "connect/checksession",
CURLOPT_RETURNTRANSFER => 1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => array(
"Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8",
"Accept-Language: en-US,en;q=0.5",
"Cache-Control: no-cache",
"Connection: keep-alive",
"User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:62.0) Gecko/20100101 Firefox/62.0",
"client_id": "clientid"
),
]);
$resp = curl_exec($curl);
print_r($resp);
curl_close($curl);
WKExtendedRuntimeSessionDelegate
激活应用程序时,我开始了会话.start()
来终止会话当我再次启动它时,出现以下错误:
session.invalidate()
代码
我的分机代表
-[WKExtendedRuntimeSession _start]:308: Unable to start sessions because state == WKExtendedRuntimeSessionStateInvalid. notifying delegate <MYAPP_Extension.ExtensionDelegate: 0x17e663d0>. Error is (null)
我的开始发生在var session = WKExtendedRuntimeSession()
class ExtensionDelegate: NSObject, WKExtensionDelegate, WKExtendedRuntimeSessionDelegate {
func extendedRuntimeSession(_ extendedRuntimeSession: WKExtendedRuntimeSession, didInvalidateWith reason: WKExtendedRuntimeSessionInvalidationReason, error: Error?) {
print("Session stopped at", Date())
}
func extendedRuntimeSessionDidStart(_ extendedRuntimeSession: WKExtendedRuntimeSession) {
print("Session started at", Date())
}
func extendedRuntimeSessionWillExpire(_ extendedRuntimeSession: WKExtendedRuntimeSession) {
}
func applicationDidBecomeActive() {
session.delegate = self
}
取消:
.onAppear(perform:{ session.start() })
答案 0 :(得分:0)
根据Apple文档: 在调用invalidate()之后,您将无法再运行会话。而是创建并开始一个新会话。
https://developer.apple.com/documentation/watchkit/using_extended_runtime_sessions
这样做:
public override fun onResum() {
super.onResum()
list.remove(position);
recycler.removeViewAt(position);
mAdapter.notifyItemRemoved(position);
mAdapter.notifyItemRangeChanged(position, list.size());
}
希望这会有所帮助。