iOS - Uipasteboard non lavora fuori dall'app
-
28-10-2019 - |
Domanda
Penso che questo sia più un difetto SDK rispetto alle mie app, ma recentemente ho cercato di usare Uipasteboard per copiare le stringhe dalla mia app e funziona bene per incollare da qualche parte quando sono all'interno dell'app.
Quando salto a un'altra app premendo il pulsante Home o qualcosa del genere, semplicemente non ho la possibilità di incollare il contenuto copiato.
UIPasteboard *pasteboard = [UIPasteboard generalPasteboard];
[pasteboard setString: @"blah" ];
NSLog(@"%@", pasteboard.string);
In questo caso stamperà "blah" e ogni volta che toccherò rapidamente un campo di testo, mostrerà l'opzione in pasta. Ma se vado a Safari, note o posta non mi mostra quell'opzione.
Inoltre, se copio qualcosa dalla posta e vado alla mia app, non vedrò anche l'opzione in pasta ...
Soluzione
Ho un problema simile. Potrebbero essere alcuni conflitti con una biblioteca di terze parti. Ho scoperto che quando rimuovo l'analisi della raffica, va tutto bene. Immagino che LIB faccia qualcosa nell'evento "Enterbackground".
Potresti provare a "ripulire" la tua applicazione. Rimuovi la chiamata della funzione sul delegato Enterbackground di AppDelgate.
Voglio dire, il tuo codice o il codice di terza parte potrebbero fare STH durante "DidenterBackground" che in serie gli appunti. prova a non codificare nulla su questo:
- )
Prova anche a rimuovere il codice di terze parti che è necessario invocare in: -(bool) Applicazione: (Uiapplication *) Applicazione DidfinishLaunchingWithOptions: (NSDictionary *) LaunchOptions -
Altri suggerimenti
Per eseguire una pasta persistente tra le applicazioni è necessario utilizzare
UIPasteboard *pasteboard = [UIPasteboard pasteboardWithName:pasteboardIdentifier create:YES];
[pasteboard setPersistent:YES];
[pasteboard setString:string];
Sono stato in grado di ripristinare la funzionalità di pasta tornando a Flurry 2.8.4. Flurry 3.0.2 e 3.0.3 in qualche modo disabilitato il supporto di copia/incolla con app esterne come Blocco note.
Sembra che Flurry abbia risolto questo problema rilasciando il 3.0.4
Peccato, i reclami dei miei utenti hanno inondato la mia casella di posta ...
// Salva testo
UIPasteboard* board = [UIPasteboard
pasteboardWithName:@"com.company.wtv" create:YES];
board.persistent=YES; [board setValue:@"123456ccc"
forPasteboardType:@"com.company.wtv.sharedValue"];
// Retrive text
UIPasteboard* board = [UIPasteboard pasteboardWithName:@"com.company.wtv" create:YES];
board.persistent=YES;
NSData* result=nil;
NSString*resultStr=nil;
result =[board valueForPasteboardType:@"com.company.wtv.sharedValue"];
resultStr=[[NSString alloc] initWithData:result encoding:NSUTF8StringEncoding];// I got resultStr containing
123456ccc
NSLog(@"key %@",resultStr);