capawesome-team/capacitor-nfc

bug:

Closed this issue · 4 comments

Plugin version:

"@capawesome-team/capacitor-nfc": "^5.0.2",

Platform(s):

ios

Current behavior:

Capacitor says nfc is not supported.

Expected behavior:

Nfc is supported = true

Steps to reproduce:

install plugin
try to initianlyse and fail


this is a quasar app.

Related code:

nfcpage.vue:

import { Nfc, NfcUtils, NfcTag } from '@capawesome-team/capacitor-nfc';


let nfcInstantiated = async () => {
      let { isSupported } = await Nfc.isSupported();
      this.nfcIsSupported = isSupported;
      if (!isSupported) {
        return;
      }
      this.rippleinterval = setInterval(() => {
        if (this.$refs['ripple'] && this.nfcIsSupported != false) {
          (this.$refs['ripple'] as Element).classList.toggle('ripple');
        } else {
          clearInterval(this.rippleinterval);
        }
      }, 800);
      let count = 0;
      Notify.create('bools ' + this.isAdmin + ' ' + this.scanning);
      while (this.isAdmin && this.scanning) {
        count++;
        Notify.create('started to listen' + count);
        await Nfc.removeAllListeners();
        await startReadWrite();
        await new Promise<void>((resolve) => {
          setTimeout(() => {
            resolve();
          }, 2000);
        });
        Notify.create('done to listen' + count);
      }
    };
    nfcInstantiated();





info.plist:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
	<key>UIApplicationSceneManifest</key>
	<dict>
		<key>UIApplicationSupportsMultipleScenes</key>
		<false/>
		<key>UISceneConfigurations</key>
		<dict/>
	</dict>
	<key>CFBundleDevelopmentRegion</key>
	<string>en</string>
	<key>CFBundleDisplayName</key>
	<string>Quasar App</string>
	<key>CFBundleExecutable</key>
	<string>$(EXECUTABLE_NAME)</string>
	<key>CFBundleIdentifier</key>
	<string>$(PRODUCT_BUNDLE_IDENTIFIER)</string>
	<key>CFBundleInfoDictionaryVersion</key>
	<string>6.0</string>
	<key>CFBundleName</key>
	<string>$(PRODUCT_NAME)</string>
	<key>CFBundlePackageType</key>
	<string>APPL</string>
	<key>CFBundleShortVersionString</key>
	<string>$(MARKETING_VERSION)</string>
	<key>CFBundleVersion</key>
	<string>$(CURRENT_PROJECT_VERSION)</string>
	<key>LSRequiresIPhoneOS</key>
	<true/>
<key>com.apple.developer.nfc.readersession.formats</key>
<array>
    <string>NDEF</string>
    <string>TAG</string>
</array>
	<key>UILaunchStoryboardName</key>

	<string>LaunchScreen</string>
	<key>UIMainStoryboardFile</key>
	<string>Main</string>
	<key>UIRequiredDeviceCapabilities</key>
	<array>
		<string>armv7</string>
	</array>
	<key>NFCReaderUsageDescription</key>
	<string>The app enables the reading and writing of various NFC tags.</string>
	<key>UISupportedInterfaceOrientations</key>
	<array>
		<string>UIInterfaceOrientationPortrait</string>
		<string>UIInterfaceOrientationLandscapeLeft</string>
		<string>UIInterfaceOrientationLandscapeRight</string>
	</array>
	<key>UISupportedInterfaceOrientations~ipad</key>
	<array>
		<string>UIInterfaceOrientationPortrait</string>
		<string>UIInterfaceOrientationPortraitUpsideDown</string>
		<string>UIInterfaceOrientationLandscapeLeft</string>
		<string>UIInterfaceOrientationLandscapeRight</string>
	</array>
	<key>UIViewControllerBasedStatusBarAppearance</key>
	<true/>
	<key>com.apple.developer.nfc.readersession.felica.systemcodes</key>
	<array>
		<string>0003</string>
	</array>
	<key>com.apple.developer.nfc.readersession.iso7816.select-identifiers</key>
	<array>
		<string>D2760000850100</string>
		<string>D2760000850101</string>
	</array>
</dict>
</plist>

Other information:

⚡️ To Native -> Nfc isSupported 94429216
2023-06-27 01:35:39.871884+0200 App[1778:318741] [CoreNFC] -[NFCHardwareManager areFeaturesSupported:outError:]:166 XPC Error: Error Domain=NSCocoaErrorDomain Code=4099 "The connection to service named com.apple.nfcd.service.corenfc was invalidated from this process." UserInfo={NSDebugDescription=The connection to service named com.apple.nfcd.service.corenfc was invalidated from this process.}
2023-06-27 01:35:39.974324+0200 App[1778:318741] [CoreNFC] -[NFCHardwareManager areFeaturesSupported:outError:]:166 XPC Error: Error Domain=NSCocoaErrorDomain Code=4099 "The connection to service named com.apple.nfcd.service.corenfc was invalidated from this process." UserInfo={NSDebugDescription=The connection to service named com.apple.nfcd.service.corenfc was invalidated from this process.}
2023-06-27 01:35:40.179973+0200 App[1778:318741] [CoreNFC] -[NFCHardwareManager areFeaturesSupported:outError:]:166 XPC Error: Error Domain=NSCocoaErrorDomain Code=4099 "The connection to service named com.apple.nfcd.service.corenfc was invalidated from this process." UserInfo={NSDebugDescription=The connection to service named com.apple.nfcd.service.corenfc was invalidated from this process.}
2023-06-27 01:35:40.485304+0200 App[1778:318741] [CoreNFC] -[NFCHardwareManager areFeaturesSupported:outError:]:166 XPC Error: Error Domain=NSCocoaErrorDomain Code=4099 "The connection to service named com.apple.nfcd.service.corenfc was invalidated from this process." UserInfo={NSDebugDescription=The connection to service named com.apple.nfcd.service.corenfc was invalidated from this process.}
2023-06-27 01:35:40.886460+0200 App[1778:318741] [CoreNFC] -[NFCHardwareManager areFeaturesSupported:outError:]:166 XPC Error: Error Domain=NSCocoaErrorDomain Code=4099 "The connection to service named com.apple.nfcd.service.corenfc was invalidated from this process." UserInfo={NSDebugDescription=The connection to service named com.apple.nfcd.service.corenfc was invalidated from this process.}
⚡️ TO JS {"isSupported":false}

Screenshot 2023-06-27 at 01 52 54

Capacitor doctor:

❯ npx cap doctor
[warn] The bundledWebRuntime configuration option has been deprecated. Can be safely deleted.
💊   Capacitor Doctor  💊 

Latest Dependencies:

  @capacitor/cli: 5.0.5
  @capacitor/core: 5.0.5
  @capacitor/android: 5.0.5
  @capacitor/ios: 5.0.5

Installed Dependencies:

  @capacitor/cli: 5.0.2
  @capacitor/core: 5.0.2
  @capacitor/android: 5.0.2
  @capacitor/ios: 5.0.4

[success] iOS looking great! 👌
[error] Missing <manifest package=""> attribute in app/src/main

Thank you for your request!

Which device do you use?

Edit: iOS Simulator is not supported.

Tested on my personal iPhone (14 pro max)
It works on android but not iOS

The value that is returned comes directly from NFCTagReaderSession.readingAvailable (see docs).
Unfortunately there is nothing I can do/fix there. So it should be a configuration problem.
Maybe this helps you: https://stackoverflow.com/a/54109822/6731412

It looks like there hasn't been a reply in 30 days, so I'm closing this issue.