diff --git a/test-apps/ios-test-app/App/App/public/index.html b/test-apps/ios-test-app/App/App/public/index.html index 7629027..2665e3c 100644 --- a/test-apps/ios-test-app/App/App/public/index.html +++ b/test-apps/ios-test-app/App/App/public/index.html @@ -355,22 +355,64 @@ function checkPermissions() { console.log('🔐 checkPermissions called'); console.log('🔐 Plugin available:', !!window.DailyNotification); + console.log('🔐 Plugin object:', window.DailyNotification); + console.log('🔐 checkPermissionStatus method:', typeof window.DailyNotification?.checkPermissionStatus); + const status = document.getElementById('status'); status.innerHTML = '🔐 Checking permissions...'; status.style.background = 'rgba(255, 255, 0, 0.3)'; // Yellow background + // Add timeout to detect if promise never resolves + const timeoutId = setTimeout(() => { + console.error('❌ Permission check timed out after 10 seconds'); + status.innerHTML = '❌ Permission check timed out
Check console for details.'; + status.style.background = 'rgba(255, 0, 0, 0.3)'; // Red background + }, 10000); + try { if (!window.DailyNotification) { + clearTimeout(timeoutId); console.error('❌ DailyNotification plugin not available'); status.innerHTML = '❌ DailyNotification plugin not available
Check console for details.'; status.style.background = 'rgba(255, 0, 0, 0.3)'; // Red background return; } + if (typeof window.DailyNotification.checkPermissionStatus !== 'function') { + clearTimeout(timeoutId); + console.error('❌ checkPermissionStatus is not a function'); + console.error('❌ Available methods:', Object.keys(window.DailyNotification)); + status.innerHTML = '❌ checkPermissionStatus method not found
Available methods: ' + Object.keys(window.DailyNotification).join(', '); + status.style.background = 'rgba(255, 0, 0, 0.3)'; // Red background + return; + } + console.log('🔐 Calling checkPermissionStatus...'); - window.DailyNotification.checkPermissionStatus() + const promise = window.DailyNotification.checkPermissionStatus(); + console.log('🔐 Promise returned:', promise); + console.log('🔐 Promise type:', typeof promise); + + if (!promise || typeof promise.then !== 'function') { + clearTimeout(timeoutId); + console.error('❌ checkPermissionStatus did not return a promise'); + status.innerHTML = '❌ checkPermissionStatus did not return a promise
Check console for details.'; + status.style.background = 'rgba(255, 0, 0, 0.3)'; // Red background + return; + } + + promise .then(result => { + clearTimeout(timeoutId); console.log('✅ Permission status result:', result); + console.log('✅ Result type:', typeof result); + console.log('✅ Result keys:', result ? Object.keys(result) : 'null'); + + if (!result) { + status.innerHTML = '❌ Permission check returned null
Check console for details.'; + status.style.background = 'rgba(255, 0, 0, 0.3)'; // Red background + return; + } + status.innerHTML = `🔐 Permission Status:
Notifications: ${result.notificationsEnabled ? '✅ YES' : '❌ NO'}
Exact Alarm: ${result.exactAlarmEnabled ? '✅ YES' : '❌ NO'}
@@ -380,13 +422,20 @@ 'rgba(0, 255, 0, 0.3)' : 'rgba(255, 165, 0, 0.3)'; // Green or orange }) .catch(error => { + clearTimeout(timeoutId); console.error('❌ Permission check error:', error); - status.innerHTML = `❌ Permission check failed:
${error.message || error}`; + console.error('❌ Error type:', typeof error); + console.error('❌ Error message:', error?.message); + console.error('❌ Error stack:', error?.stack); + status.innerHTML = `❌ Permission check failed:
${error?.message || error || 'Unknown error'}`; status.style.background = 'rgba(255, 0, 0, 0.3)'; // Red background }); } catch (error) { + clearTimeout(timeoutId); console.error('❌ Permission check exception:', error); - status.innerHTML = `❌ Permission check failed:
${error.message || error}`; + console.error('❌ Exception type:', typeof error); + console.error('❌ Exception message:', error?.message); + status.innerHTML = `❌ Permission check failed:
${error?.message || error || 'Unknown error'}`; status.style.background = 'rgba(255, 0, 0, 0.3)'; // Red background } }