cordova-plugin-feed-fm
v2.1.1
Published
Cordova Plugin for the native Feed.fm SDK
Downloads
8
Maintainers
Readme
Usage
Prerequisites
- Cordova-iOS 3.x.x or higher
- Cordova-Android x.x.x
Using the plugin
initialize the plugin and handle all future state with a switch statement.
plugin will respond with the appropriate msg.type
and msg.payload
when native state changes.
CordovaPluginFeedFm.initializeWithToken(
successCallback,
errorCallback,
token,
secret,
enableBackgroundMusic
);
// repeatedly returns callbacks to Cordova when state changes with the following Object shape
{type: "NAME_OF_STATE_OR_EVENT", payload:{...}}
Full example of every state that initialize will respond with:
CordovaPluginFeedFm.initializeWithToken(
function(msg) {
switch (msg.type) {
case "REQUESTING_SKIP":
console.log(msg.payload);
// your logic here
break;
case "PLAYBACK_STARTED":
console.log(msg.payload);
// your logic here
break;
case "NEW_CLIENT_ID":
console.log(msg.payload);
// your logic here
break;
case "SET_ACTIVE_STATION_SUCCESS":
console.log(msg.payload);
// your logic here
break;
case "SET_ACTIVE_STATION_FAIL":
console.log(msg.payload);
// your logic here
break;
case "SKIP_FAIL":
console.log(msg.payload);
// your logic here
break;
case "INITIALIZE":
console.log(msg.payload);
// your logic here
break;
case "WAITING_FOR_ITEM":
console.log(msg.payload);
// your logic here
break;
case "READY_TO_PLAY":
console.log(msg.payload);
// your logic here
break;
case "PLAYING":
console.log(msg.payload);
// your logic here
break;
case "STALLED":
console.log(msg.payload);
// your logic here
break;
case "COMPLETE":
console.log(msg.payload);
// your logic here
break;
case "UNKNOWN":
console.log(msg.payload);
// your logic here
break;
case "OFFLINE_ONLY":
console.log(msg.payload);
// your logic here
break;
case "UNINITIALIZED":
console.log(msg.payload);
// your logic here
break;
case "UNAVAILABLE":
console.log(msg.payload);
// your logic here
break;
case "STATION_CHANGE":
console.log(msg.payload);
// your logic here
break;
case "READY_TO_PLAY":
console.log(msg.payload);
// your logic here
break;
case "PAUSED":
console.log(msg.payload);
// your logic here
break;
default:
break;
}
},
function(err) {},
"token",
"secret",
false // background audio
);
set active station
CordovaPluginFeedFm.setActiveStation(12345);
play
CordovaPluginFeedFm.play();
pause
CordovaPluginFeedFm.pause();
skip
CordovaPluginFeedFm.skip();
stop
CordovaPluginFeedFm.stop();
createNewClientID:
CordovaPluginFeedFm.createNewClientID();
setVolume
CordovaPluginFeedFm.setVolume(5);
setClientId
CordovaPluginFeedFm.setClientId(12345);
requestClientId
CordovaPluginFeedFm.requestClientId(
function(msg) {
console.log(msg.payload);
},
function(error) {}
);
Contributing to this plugin
The dev environment used for this project was macOS. Instructions for any other OS aren't provided and will be unreliable.
You will need the following global dependencies:
- npm
- cordova
Directory Structure
Key files
.
├── example # cordova example project
│ ├── www # example assets
| ├── package.json # example config
|
├── src # plugin native source
├── www # plugin js interface
├── plugin.xml # cordova plugin config
├── package.json # npm config
Setting up local env
cd example
cordova platform add platformname
cordova emulate platformname
Key Commands
cordova prepare
in /example/ this compiles non-native assets (html/css/js)cordova plugin rm cordova-plugin-feed-fm && cordova plugin add cordova-plugin-feed-fm --searchpath=../ --noregistry
in /example/ to reinstall plugin, useful for js interface changes
Troubleshooting
Experiencing bug:
- "D8: Program type already present: android.support.v4.media.MediaBrowserCompat$ConnectionCallback$StubApi21"
- Solution:
cordova plugin add cordova-plugin-androidx && cordova plugin add cordova-plugin-androidx-adapter
- Solution: