Bondi Widget porting example - devicestatus API
Article Metadata
Reasons: hamishwillee (01 Jun 2011)
The article is dependent on a wgt package from Bondi that is no longer available (Charge.wgt) because the site has merged with another. If anyone can find the linked package this header can be removed.
Contents |
Preface
This is an example of porting a Bondi Widget to Nokia WRT using the guide found here. The example widget uses Bondi API specific device status functions. It gets charging status of battery, indicating whether the phone's battery is being charged or not.
1. Download the .wgt package
The Charge! widget package can be found by following this http://bondi.omtp.org/widget-gallery/Lists/Widgets/Attachments/29/Charge.wgt link. This porting example was written using the Charge! widget version 1.0. The link may require login credentials for the Bondi website.
2. Rename and unzip the Test widget archive
The archive needs to be unzipped to make modifications to its contents. First rename the file extension from *.wgt to *.zip. Then extract the zip archive.
3. Create info.plist manifest file
When installing a .wgz file the system looks for a manifest file called info.plist. The Bondi Widget equivalent is called config.xml.
Here's how to use the Bondi Widget config.xml data to create the WRT manifest file:
- Download and unzip this info.plist template file and save it in the widget's root directory.
- Open the widget's config.xml file and find the <name> element. Copy the text found within the element and paste it into the <string> element under <key>DisplayName</key> element of the info.plist file.
<key>DisplayName</key>
<string>Charge!</string> - The identifier of a Bondi widget can be found in the id attribute of the <widget> element in config.xml. If the value is a URL, use the conventional WRT identifier form, which is the URL in reverse. Add the identifier to <string> element under <key>Identifier</key> element of the info.plist file.
<key>Identifier</key>
<string>fi.metropolia.users.miasa.widgets.charging</string> - The HTML-file can be found in the src attribute of <content> element.
<key>MainHTML</key>
<string>index.html</string> - This widget does not require network access so it can be set to false.
<key>AllowNetworkAccess</key>
<false /> - Save the file.
4. Add Javascript wrapper library
- Copy Bondi.txt and save it to the widget's root directory. Change the extension from *.txt to *.js.
- Add the following line inside <head> element in main HTML file:
<script type="text/javascript" src="Bondi.js"></script>
5. Packaging
Re-zip the containing Charge! widget folder and change the file extension from *.zip to *.wgz.
6. Deploy
Upload the widget to your mobile device and install.
Here is an example of the ported widget. Remember to change the extension to *.wgz before installing.


(no comments yet)