If you're trying to make AJAX requests from within the Workshop app—for example, with $.get() or $.ajax()—you'll notice nothing happens. Why? AJAX requests cannot be made across different domains.
App Cloud provides a device method for this very reason:
bc.device.fetchContentsOfURL(url, successCallback, errorCallback);
This asynchronous method can be used to load any kind of textual data, from JSON to XML to HTML. For example:
// get latitude/longitude for Beverly Hills, CA
var url = "https://maps.googleapis.com/maps/api/geocode/json?address=90210&sensor=true";
bc.device.fetchContentsOfURL(url,
function (data) {
if (data.status === "OK") {
var coords = [
data.results[0].geometry.location.lat,
data.results[0].geometry.location.lng
];
// etc.
}
else {
bc.device.alert("Oops!");
}
},
function (data) {
bc.device.alert("Oh noes! " + data.errorMessage);
}
);
Note, bc.device.fetchContentsOfURL() falls back to $.ajax() when running in your desktop browser, so you must start Chrome from the command line with the --disable-web-security flag for it to work. (Do this in testing mode only!) On iOS:
/Applications/Google\ Chrome.app/Contents/MacOS/Google\ Chrome --disable-web-security
p.s. Get more tips and tricks (and share your own) by joining the Brightcove App Cloud discussion group on Google.


Post new comment
Comments