Ошибка: сеанс неожиданно аннулирован при вызове NFC. Кодовое имя iOS.IOS

Программируем под IOS
Ответить
Anonymous
 Ошибка: сеанс неожиданно аннулирован при вызове NFC. Кодовое имя iOS.

Сообщение Anonymous »

Я пытаюсь реализовать NFC на iOS. (Я уже успешно сделал это на Android). При нажатии кнопки для начала сеанса я получаю сообщение об ошибке:

"Сеанс неожиданно аннулирован".

Из этого видео я узнал, что проблема заключается в правах и возможностях:

Я не знаю, какие подсказки сборки потребуются для включения функции NFC ПОЛНОСТЬЮ.
Я не нашел файла .entitlements в исходном коде, сгенерированном сервером сборки Codenameone.
Использованные мной подсказки по сборке:
Использованные подсказки по сборке:

ios_add_libs=;CoreNFC.framework
ios.entitlements.nfc.readersession.formats=NDEF,TAG
ios.infoPlist.NFCReaderUsageDescription=Тег NFC для чтения сообщений NDEF в приложение
ios.objC=true
ios.plistInject=


Код: Выделить всё

NFCReaderUsageDescription NFC tag to read NDEF messages into the application UIRequiredDeviceCapabilitiesarmv7nfc


Мои файлы в objC:
  • com_myapp_mobi_NfcInterfaceImpl.m

Код: Выделить всё

#import "com_myapp_mobi_NFCCallback.h"
#import "CodenameOne_GLViewController.h"

@implementation com_myapp_mobi_NfcInterfaceImpl

-(void)unbindNFCListener{
}

-(void)bindNFCListener:(NSString*)param param1:(NSString*)param1{
NSString *dataToSendBack = @"Hello from iOS";
if (![NFCNDEFReaderSession readingAvailable]) {
dataToSendBack = @"NFC is Available";
// return;
}

// Create and begin an NFCNDEFReaderSession
// Set invalidateAfterFirstRead:NO to read multiple tags or continue the session

self.session = [[NFCNDEFReaderSession alloc ] initWithDelegate:self
queue:dispatch_queue_create(NULL, DISPATCH_QUEUE_CONCURRENT)
invalidateAfterFirstRead:YES];

[self.session beginSession];

}

-(BOOL)isSupported{
return YES;
}

// Called when the session detects NDEF messages
- (void)readerSession:(NFCNDEFReaderSession *)session didDetectNDEFs:(NSArray *)messages {
for (NFCNDEFMessage *message in messages) {
for (NFCNDEFPayload *record in message.records) {

NSString *dataToSendBack = @"New Record Found";
// Call the static Java method

com_myapp_mobi_NFCCallback_nfcReceived___java_lang_String(CN1_THREAD_GET_STATE_PASS_ARG fromNSString(CN1_THREAD_GET_STATE_PASS_ARG dataToSendBack));

}
}

}

// Called when the session terminates
- (void)readerSession:(NFCNDEFReaderSession *)session didInvalidateWithError:(NSError *)error {

NSString *dataToSendBack = error.localizedDescription;

com_myapp_mobi_NFCCallback_nfcReceived___java_lang_String(CN1_THREAD_GET_STATE_PASS_ARG fromNSString(CN1_THREAD_GET_STATE_PASS_ARG dataToSendBack));

}

@end
  • com_myapp_mobi_NfcInterfaceImpl.h

Код: Выделить всё

#import 
#import  // Import the CoreNFC framework

@interface com_myapp_mobi_NfcInterfaceImpl : NSObject {
}

-(void)unbindNFCListener;
-(void)bindNFCListener:(NSString*)param param1:(NSString*)param1;
-(BOOL)isSupported;
@property (strong, nonatomic) NFCNDEFReaderSession *session;
@end
Пожалуйста, помогите


Подробнее здесь: https://stackoverflow.com/questions/798 ... dename-ios
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «IOS»