antecedentes
Debe Extension
saltar a la página principal cuando haga clic en App
, la transferencia de datos no se considera por el momento, solo si la página principal está abierta App
.
Al final del día, todavía necesitamos usar UIApplication
el openURL:
método para abrir el principal App
, pero esta API
limitación Extension
se usa en
resolver
¿La extensión necesita una interfaz?
Lo que hice inicialmente fue Action Extension
que había dos tipos cuando lo creé, con interfaz y sin interfaz. ¿Cuál elegir para crear? Se requiere más análisis.
Entonces solo tenemos una idea, Runtime
que llamar openURL:
.
Luego, primero debe encontrar UIApplication
el objeto, y Extension
también está prohibido usarlo directamente en él.
UIApplication
Como no se puede usar directamente, podemos encontrar el objeto a través de la cadena de respuesta y obtener el objeto perform openURL
. Luego, para encontrar el objeto en la cadena de respuesta, UIApplication
debe elegir un tipo con una interfaz para crearlo.
como encontrarUIApplication
func openApp(url: URL) {
var responder = self as UIResponder?
while (responder != nil && !(responder is UIApplication)) {
responder = responder?.next
}
if responder != nil {
let selectorOpenURL = sel_registerName("openURL:")
if responder!.responds(to: selectorOpenURL) {
responder?.perform(selectorOpenURL, with: url)
}
}
}
复制代码
En este punto, el problema de abrir la aplicación se ha solucionado y solo necesita usarla App Group
para transmitir datos.