check for updates button
Shari
shari at gypsyware.com
Sat Jun 16 10:44:14 EDT 2007
This may not be the cleanest code but it works :-)
gPlat is a global denoting the platform: P, X, or W
goUrl is whatever handler you use to take people to a webpage from your app
tUrl is the url sent to goUrl
pageText is the entire text of the web page where your version info is
In my case, it's a very long web page with the download links and
version numbers at the bottom
The only caveat is that you must remember not to change whatever
string of text you use for this on the web page itself, or add the
same string of text higher up with the version numbers.
productVersionNumber is the latest version number, stored somewhere
in your app for retrieval
statusBar is a handler that updates a little status bar in the Info
window in case they have a slow connection and it takes a minute, so
they can see something is happening
if HostNameToAddress(www.yourDomain.com) is empty then
answer "You are not connected to the internet. Please" && \
"connect to the internet and try again."
exit to top
else
put "Checking for updates. . . please wait. . ." into cd fld 2
of cd 1 of stack "Info"
lock messages
go invisible cd 1 of stack "Info" as modal
set the loc of stack "Info" to the loc of stack "yourStack"
set the decorations of stack "Info" to empty
show stack "Info"
unlock messages
if "Info" is in openStacks() then
send statusBar to someScript in 5 ticks
end if
put url "http://www.yourDomain.com/productPage.html" into pageText
# Note that Product Name XXX needs to be a unique string of text
# Or be located at the top of the web page
if gPlat is "P" then
put line (lineoffset("Product Name Classic", pageText)) of
pageText into onlineVs
set the wholeMatches to true
get wordOffset("Classic",onlineVs)
put word (it + 1) of onlineVs into onlineVs
else if gPlat is "X" then
put line (lineoffset("Product Name OSX", pageText)) of
pageText into onlineVs
set the wholeMatches to true
get wordOffset("OSX",onlineVs)
put word (it + 1) of onlineVs into onlineVs
else
put line (lineoffset("Product Name WIN", pageText)) of
pageText into onlineVs
set the wholeMatches to true
get wordOffset("WIN",onlineVs)
put word (it + 1) of onlineVs into onlineVs
end if
put productVersionNumber into currVs
replace "." with "" in onlineVs
replace "." with "" in currVs
repeat with v = the number of chars of onlineVs down to 1
if char v of onlineVs is not a number then
delete char v of onlineVs
end if
end repeat
if (onlineVs is not a number) or (currVs is not a number) then
put "We were unable to get info on the newest available" && \
"version. Click anywhere in this window to close it." \
into cd fld 2 of cd 1 of stack "Info"
exit to top
end if
if onlineVs > currVs then
if "Info" is in openStacks() then
close stack "Info"
end if
answer "There is a newer version available on our website.
Go there now?" with "Yes" or "No"
if it is "Yes" then
put "http://www.yourDomain.com/productPage.html" into tUrl
goUrl tUrl
end if
else
put "You have the most current version." into cd fld 2 of cd
1 of stack "Info"
wait until the mouseClick
if "Info" is in openStacks() then
close stack "Info"
end if
end if
end if
--
Windows and Macintosh shareware games
BIackjack Gold
http://www.gypsyware.com
More information about the use-livecode
mailing list