feat(android): implement plugin diagnostics and fix Vue 3 compatibility

- Add runPluginDiagnostics and openConsole methods to HomeView.vue
- Convert ActionCard.vue from vue-facing-decorator to Composition API
- Enhance App.vue with improved plugin detection and error handling
- Add simplified DailyNotificationPlugin.java with basic methods
- Fix plugin registration in capacitor.plugins.json
- Remove error dialogs, rely on console logging for diagnostics

The Plugin Diagnostics button now provides detailed platform and plugin status information.
This commit is contained in:
Matthew Raymer
2025-10-16 10:33:49 +00:00
parent 1e6c4bf7fc
commit 9328bffa68
4 changed files with 162 additions and 27 deletions

View File

@@ -78,6 +78,23 @@
<div class="system-status">
<h2 class="section-title">System Status</h2>
<StatusCard :status="systemStatus" @refresh="refreshSystemStatus" />
<!-- Diagnostic Actions -->
<div class="section">
<h2 class="section-title">🔧 Diagnostics</h2>
<ActionCard
title="Plugin Diagnostics"
description="Check plugin loading and availability"
button-text="Run Diagnostics"
@click="runPluginDiagnostics"
/>
<ActionCard
title="View Console Logs"
description="Open browser console for detailed logs"
button-text="Open Console"
@click="openConsole"
/>
</div>
</div>
</div>
</template>
@@ -188,6 +205,61 @@ export default class HomeView extends Vue {
throw error
}
}
async runPluginDiagnostics(): Promise<void> {
try {
console.log('🔧 Running plugin diagnostics...')
console.log('🔧 BUTTON CLICKED - METHOD CALLED!')
// Check if we're on a native platform
const { Capacitor } = await import('@capacitor/core')
const platform = Capacitor.getPlatform()
const isNative = Capacitor.isNativePlatform()
console.log('📱 Platform:', platform)
console.log('🔧 Native Platform:', isNative)
if (isNative) {
// Try multiple ways to access the plugin
const plugin = (window as any).DailyNotification ||
(window as any).Capacitor?.Plugins?.DailyNotification ||
(window as any).Capacitor?.Plugins?.['DailyNotification']
console.log('🔍 Plugin detection debug:')
console.log(' - window.DailyNotification:', (window as any).DailyNotification)
console.log(' - Capacitor.Plugins:', (window as any).Capacitor?.Plugins)
console.log(' - Available plugins:', Object.keys((window as any).Capacitor?.Plugins || {}))
if (plugin) {
console.log('✅ DailyNotification plugin available')
// Test the checkStatus method
try {
const status = await plugin.checkStatus()
console.log('📊 Plugin status check result:', status)
alert(`✅ Plugin Diagnostics Complete!\n\nPlatform: ${platform}\nPlugin Available: Yes\nStatus: ${JSON.stringify(status, null, 2)}`)
} catch (error) {
console.error('❌ Plugin status check failed:', error)
alert(`⚠️ Plugin Diagnostics Complete!\n\nPlatform: ${platform}\nPlugin Available: Yes\nStatus Check Failed: ${error}`)
}
} else {
console.warn('⚠️ DailyNotification plugin not available')
alert(`❌ Plugin Diagnostics Complete!\n\nPlatform: ${platform}\nPlugin Available: No\nAvailable Plugins: ${Object.keys((window as any).Capacitor?.Plugins || {}).join(', ')}`)
}
} else {
console.log('🌐 Running in web mode - plugin not available')
alert(` Plugin Diagnostics Complete!\n\nPlatform: ${platform}\nNative Platform: No\nPlugin Available: No (Web mode)`)
}
} catch (error) {
console.error('❌ Plugin diagnostics failed:', error)
alert(`❌ Plugin Diagnostics Failed!\n\nError: ${error}`)
}
}
openConsole(): void {
console.log('📖 Console opened - check browser developer tools for detailed logs')
alert('📖 Console Logs\n\nOpen your browser\'s Developer Tools (F12) and check the Console tab for detailed diagnostic information.')
}
}
</script>