Cordova Phonegap IOS App Settings.Bundle Possible?

前端 未结 1 1138
刺人心
刺人心 2020-12-31 19:39

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

相关标签:
1条回答
  • 2020-12-31 20:11

    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>

    0 讨论(0)
提交回复
热议问题