So I'm new to mobile development but I'm close to finishing up my first IOS application using HTML/CSS/JS and Cordova PhoneGap 3. I am trying to allow the user to provide text input through the iPhone's native "Settings" app (gray gear icon). My app will have have its own settings section within the "Settings" app where the user can input a specific IP address, that my app will then use.
What I've found out so far is that I may need to install a PhoneGap plugin and need to add a settings.bundle root.plist file:
https://github.com/phonegap/phonegap-plugins/tree/DEPRECATED/iOS/ApplicationPreferences
Phonegap 3.0 iOS7 ApplicationPreferences Plugin
https://developer.apple.com/library/ios/DOCUMENTATION/Cocoa/Conceptual/UserDefaults/Preferences/Preferences.html
Unfortunately i'm not experienced enough to make due with just this :/ I was hoping a helpful vet with more experience can spell it out a little clearer and point me in the right direction:
<script type="text/javascript" src="applicationPreferences.js"></script>
Sorry for all the longwinded rookie confusion.. I just for the life of me could not find a easy-to-understand guide on how to do this anywhere online. I'm sure there will be plenty after me that have these same questions so I really appreciate the help. Thanks much.
To create a Settings bundle that will work without having to muck in platforms/ios/, create a local plugin in your project.
./src/ios/plugin.xml
<?xml version="1.0" encoding="UTF-8"?>
<plugin xmlns="http://cordova.apache.org/ns/plugins/1.0"
id="com.example.application.settings"
version="0.4.2">
<name>Application Settings</name>
<description>My Application's Default Settings</description>
<license>Proprietary</license>
<keywords>preferences, settings, default</keywords>
<repo>https://github.com/</repo>
<platform name="ios">
<resource-file src="Settings.bundle" />
</platform>
</plugin>
In Xcode, open ./src/ios
, and create a new Settings.bundle
./src/ios/Settings.bundle/Root.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>PreferenceSpecifiers</key>
<array>
<dict>
<key>Title</key>
<string>API Server</string>
<key>Type</key>
<string>PSGroupSpecifier</string>
</dict>
<dict>
<key>AutocapitalizationType</key>
<string>None</string>
<key>AutocorrectionType</key>
<string>No</string>
<key>DefaultValue</key>
<string>https://api.example.com</string>
<key>IsSecure</key>
<false/>
<key>Key</key>
<string>name_preference</string>
<key>KeyboardType</key>
<string>Alphabet</string>
<key>Type</key>
<string>PSTextFieldSpecifier</string>
</dict>
</array>
<key>StringsTable</key>
<string>Root</string>
</dict>
</plist>
At the root of your project, run cordova plugin add ./src/ios
. It will say Installing "com.dataonline.dolores.settings" for ios
.
Use me.apla.cordova.app-preferences to load those settings from Javascript.
./src/client/preferences.js
function ApplicationPreferences(){
var _this = this;
this.server = window.location.origin;
document.addEventListener('deviceready', function(){
function loaded(server){_this.server = server;}
plugins.appPreferences.fetch(loaded, function(){}, 'api_server');
});
};
applicationPreferences = new ApplicationPreferences();
// Later..
$.get(applicationPreferences.server + "/api/data");
Edit Switched from two <source-file>
s to one <resource-file>
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With