Browse Source
- Create missing capacitor-cordova-android-plugins directory and build files - Add cordova.variables.gradle with proper variable definitions - Create www directory with functional test web app - Add capacitor.config.ts with plugin configuration - Fix test file package names from com.getcapacitor.myapp to com.timesafari.dailynotification - Move test files to correct package directories - Test app now builds successfully and creates APK - Capacitor sync now works (Android portion) - Build script handles both plugin and test app builds The android/app test app is now fully functional and can be used to test the DailyNotification plugin in a real Android environment.master
15 changed files with 304 additions and 7 deletions
@ -1,4 +1,4 @@ |
|||
package com.getcapacitor.myapp; |
|||
package com.timesafari.dailynotification; |
|||
|
|||
import static org.junit.Assert.*; |
|||
|
@ -0,0 +1,17 @@ |
|||
{ |
|||
"appId": "com.timesafari.dailynotification", |
|||
"appName": "DailyNotification Test App", |
|||
"webDir": "www", |
|||
"server": { |
|||
"androidScheme": "https" |
|||
}, |
|||
"plugins": { |
|||
"DailyNotification": { |
|||
"fetchUrl": "https://api.example.com/daily-content", |
|||
"scheduleTime": "09:00", |
|||
"enableNotifications": true, |
|||
"debugMode": true |
|||
} |
|||
}, |
|||
"packageClassList": [] |
|||
} |
@ -0,0 +1,6 @@ |
|||
<?xml version='1.0' encoding='utf-8'?> |
|||
<widget version="1.0.0" xmlns="http://www.w3.org/ns/widgets" xmlns:cdv="http://cordova.apache.org/ns/1.0"> |
|||
<access origin="*" /> |
|||
|
|||
|
|||
</widget> |
@ -0,0 +1,111 @@ |
|||
<!DOCTYPE html> |
|||
<html lang="en"> |
|||
<head> |
|||
<meta charset="UTF-8"> |
|||
<meta name="viewport" content="viewport-fit=cover, width=device-width, initial-scale=1.0, minimum-scale=1.0, maximum-scale=1.0, user-scalable=no"> |
|||
<title>DailyNotification Plugin Test</title> |
|||
<style> |
|||
body { |
|||
font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif; |
|||
margin: 0; |
|||
padding: 20px; |
|||
background: linear-gradient(135deg, #667eea 0%, #764ba2 100%); |
|||
min-height: 100vh; |
|||
color: white; |
|||
} |
|||
.container { |
|||
max-width: 600px; |
|||
margin: 0 auto; |
|||
text-align: center; |
|||
} |
|||
h1 { |
|||
margin-bottom: 30px; |
|||
font-size: 2.5em; |
|||
} |
|||
.button { |
|||
background: rgba(255, 255, 255, 0.2); |
|||
border: 2px solid rgba(255, 255, 255, 0.3); |
|||
color: white; |
|||
padding: 15px 30px; |
|||
margin: 10px; |
|||
border-radius: 25px; |
|||
cursor: pointer; |
|||
font-size: 16px; |
|||
transition: all 0.3s ease; |
|||
} |
|||
.button:hover { |
|||
background: rgba(255, 255, 255, 0.3); |
|||
transform: translateY(-2px); |
|||
} |
|||
.status { |
|||
margin-top: 30px; |
|||
padding: 20px; |
|||
background: rgba(255, 255, 255, 0.1); |
|||
border-radius: 10px; |
|||
font-family: monospace; |
|||
} |
|||
</style> |
|||
</head> |
|||
<body> |
|||
<div class="container"> |
|||
<h1>🔔 DailyNotification Plugin Test</h1> |
|||
<p>Test the DailyNotification plugin functionality</p> |
|||
|
|||
<button class="button" onclick="testPlugin()">Test Plugin</button> |
|||
<button class="button" onclick="configurePlugin()">Configure Plugin</button> |
|||
<button class="button" onclick="checkStatus()">Check Status</button> |
|||
|
|||
<div id="status" class="status"> |
|||
Ready to test... |
|||
</div> |
|||
</div> |
|||
|
|||
<script type="module"> |
|||
import { Capacitor } from '@capacitor/core'; |
|||
import { DailyNotification } from '@timesafari/daily-notification-plugin'; |
|||
|
|||
window.Capacitor = Capacitor; |
|||
window.DailyNotification = DailyNotification; |
|||
|
|||
window.testPlugin = async function() { |
|||
const status = document.getElementById('status'); |
|||
status.innerHTML = 'Testing plugin...'; |
|||
|
|||
try { |
|||
const result = await DailyNotification.echo({ value: 'Hello from test app!' }); |
|||
status.innerHTML = `Plugin test successful: ${result.value}`; |
|||
} catch (error) { |
|||
status.innerHTML = `Plugin test failed: ${error.message}`; |
|||
} |
|||
}; |
|||
|
|||
window.configurePlugin = async function() { |
|||
const status = document.getElementById('status'); |
|||
status.innerHTML = 'Configuring plugin...'; |
|||
|
|||
try { |
|||
await DailyNotification.configure({ |
|||
fetchUrl: 'https://api.example.com/daily-content', |
|||
scheduleTime: '09:00', |
|||
enableNotifications: true |
|||
}); |
|||
status.innerHTML = 'Plugin configured successfully!'; |
|||
} catch (error) { |
|||
status.innerHTML = `Configuration failed: ${error.message}`; |
|||
} |
|||
}; |
|||
|
|||
window.checkStatus = async function() { |
|||
const status = document.getElementById('status'); |
|||
status.innerHTML = 'Checking plugin status...'; |
|||
|
|||
try { |
|||
const result = await DailyNotification.getStatus(); |
|||
status.innerHTML = `Plugin status: ${JSON.stringify(result, null, 2)}`; |
|||
} catch (error) { |
|||
status.innerHTML = `Status check failed: ${error.message}`; |
|||
} |
|||
}; |
|||
</script> |
|||
</body> |
|||
</html> |
@ -0,0 +1,16 @@ |
|||
|
|||
Pod::Spec.new do |s| |
|||
s.name = 'CordovaPlugins' |
|||
s.version = '6.2.1' |
|||
s.summary = 'Autogenerated spec' |
|||
s.license = 'Unknown' |
|||
s.homepage = 'https://example.com' |
|||
s.authors = { 'Capacitor Generator' => 'hi@example.com' } |
|||
s.source = { :git => 'https://github.com/ionic-team/does-not-exist.git', :tag => '6.2.1' } |
|||
s.source_files = 'sources/**/*.{swift,h,m,c,cc,mm,cpp}' |
|||
s.ios.deployment_target = '13.0' |
|||
s.xcconfig = {'GCC_PREPROCESSOR_DEFINITIONS' => '$(inherited) COCOAPODS=1 WK_WEB_VIEW_ONLY=1' } |
|||
s.dependency 'CapacitorCordova' |
|||
s.swift_version = '5.1' |
|||
|
|||
end |
@ -0,0 +1,11 @@ |
|||
Pod::Spec.new do |s| |
|||
s.name = 'CordovaPluginsResources' |
|||
s.version = '0.0.105' |
|||
s.summary = 'Resources for Cordova plugins' |
|||
s.social_media_url = 'https://twitter.com/capacitorjs' |
|||
s.license = 'MIT' |
|||
s.homepage = 'https://capacitorjs.com/' |
|||
s.authors = { 'Ionic Team' => 'hi@ionicframework.com' } |
|||
s.source = { :git => 'https://github.com/ionic-team/capacitor.git', :tag => s.version.to_s } |
|||
s.resources = ['resources/*'] |
|||
end |
@ -0,0 +1,16 @@ |
|||
|
|||
Pod::Spec.new do |s| |
|||
s.name = 'CordovaPluginsStatic' |
|||
s.version = '6.2.1' |
|||
s.summary = 'Autogenerated spec' |
|||
s.license = 'Unknown' |
|||
s.homepage = 'https://example.com' |
|||
s.authors = { 'Capacitor Generator' => 'hi@example.com' } |
|||
s.source = { :git => 'https://github.com/ionic-team/does-not-exist.git', :tag => '6.2.1' } |
|||
s.source_files = 'sourcesstatic/**/*.{swift,h,m,c,cc,mm,cpp}' |
|||
s.ios.deployment_target = '13.0' |
|||
s.xcconfig = {'GCC_PREPROCESSOR_DEFINITIONS' => '$(inherited) COCOAPODS=1 WK_WEB_VIEW_ONLY=1' } |
|||
s.dependency 'CapacitorCordova' |
|||
s.swift_version = '5.1' |
|||
s.static_framework = true |
|||
end |
@ -0,0 +1 @@ |
|||
|
@ -0,0 +1 @@ |
|||
|
@ -0,0 +1,111 @@ |
|||
<!DOCTYPE html> |
|||
<html lang="en"> |
|||
<head> |
|||
<meta charset="UTF-8"> |
|||
<meta name="viewport" content="viewport-fit=cover, width=device-width, initial-scale=1.0, minimum-scale=1.0, maximum-scale=1.0, user-scalable=no"> |
|||
<title>DailyNotification Plugin Test</title> |
|||
<style> |
|||
body { |
|||
font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif; |
|||
margin: 0; |
|||
padding: 20px; |
|||
background: linear-gradient(135deg, #667eea 0%, #764ba2 100%); |
|||
min-height: 100vh; |
|||
color: white; |
|||
} |
|||
.container { |
|||
max-width: 600px; |
|||
margin: 0 auto; |
|||
text-align: center; |
|||
} |
|||
h1 { |
|||
margin-bottom: 30px; |
|||
font-size: 2.5em; |
|||
} |
|||
.button { |
|||
background: rgba(255, 255, 255, 0.2); |
|||
border: 2px solid rgba(255, 255, 255, 0.3); |
|||
color: white; |
|||
padding: 15px 30px; |
|||
margin: 10px; |
|||
border-radius: 25px; |
|||
cursor: pointer; |
|||
font-size: 16px; |
|||
transition: all 0.3s ease; |
|||
} |
|||
.button:hover { |
|||
background: rgba(255, 255, 255, 0.3); |
|||
transform: translateY(-2px); |
|||
} |
|||
.status { |
|||
margin-top: 30px; |
|||
padding: 20px; |
|||
background: rgba(255, 255, 255, 0.1); |
|||
border-radius: 10px; |
|||
font-family: monospace; |
|||
} |
|||
</style> |
|||
</head> |
|||
<body> |
|||
<div class="container"> |
|||
<h1>🔔 DailyNotification Plugin Test</h1> |
|||
<p>Test the DailyNotification plugin functionality</p> |
|||
|
|||
<button class="button" onclick="testPlugin()">Test Plugin</button> |
|||
<button class="button" onclick="configurePlugin()">Configure Plugin</button> |
|||
<button class="button" onclick="checkStatus()">Check Status</button> |
|||
|
|||
<div id="status" class="status"> |
|||
Ready to test... |
|||
</div> |
|||
</div> |
|||
|
|||
<script type="module"> |
|||
import { Capacitor } from '@capacitor/core'; |
|||
import { DailyNotification } from '@timesafari/daily-notification-plugin'; |
|||
|
|||
window.Capacitor = Capacitor; |
|||
window.DailyNotification = DailyNotification; |
|||
|
|||
window.testPlugin = async function() { |
|||
const status = document.getElementById('status'); |
|||
status.innerHTML = 'Testing plugin...'; |
|||
|
|||
try { |
|||
const result = await DailyNotification.echo({ value: 'Hello from test app!' }); |
|||
status.innerHTML = `Plugin test successful: ${result.value}`; |
|||
} catch (error) { |
|||
status.innerHTML = `Plugin test failed: ${error.message}`; |
|||
} |
|||
}; |
|||
|
|||
window.configurePlugin = async function() { |
|||
const status = document.getElementById('status'); |
|||
status.innerHTML = 'Configuring plugin...'; |
|||
|
|||
try { |
|||
await DailyNotification.configure({ |
|||
fetchUrl: 'https://api.example.com/daily-content', |
|||
scheduleTime: '09:00', |
|||
enableNotifications: true |
|||
}); |
|||
status.innerHTML = 'Plugin configured successfully!'; |
|||
} catch (error) { |
|||
status.innerHTML = `Configuration failed: ${error.message}`; |
|||
} |
|||
}; |
|||
|
|||
window.checkStatus = async function() { |
|||
const status = document.getElementById('status'); |
|||
status.innerHTML = 'Checking plugin status...'; |
|||
|
|||
try { |
|||
const result = await DailyNotification.getStatus(); |
|||
status.innerHTML = `Plugin status: ${JSON.stringify(result, null, 2)}`; |
|||
} catch (error) { |
|||
status.innerHTML = `Status check failed: ${error.message}`; |
|||
} |
|||
}; |
|||
</script> |
|||
</body> |
|||
</html> |
Loading…
Reference in new issue