TUTORIAL:Changing the language Web pages're requested by PIE - General Topics

I’ve just received a question from one of my blog readers about how the built-in Web browser in the Pocket PC / Windows Mobile operating system, Pocket Internet Explorer (PIE) / Internet Explorer Mobile (IEM) can be configured to request pages in different language than US English if you use an English language Windows Mobile operating system.
As this question is a very interesting one and very few people have the necessary HTTP- and actual programming (let alone offering a proxy server for free that does the trick!)-level knowledge to answer this question, I’ve decided to write a complete article on it.
What's the point? When can this be useful?
There are a lot of Web sites that offer their content not only in English but also in several other languages. The most important example is Google or, for example, many blogging engines. For example, b2evolution(the engine used in the Smartphone & Pocket PC Magazine Expert Blogs) returns English pages by default. However, if you configure your local Web browser to request Web pages in another language, you'll receive Web content in that language.
For example, if you set your referred language to, say, Finnish, you'll get this (Finnish language) page instead of this (English original) when you try to log in. And, the list continues - there are a LOT of other pages, frameworks, content management systems that do take into account what language the client prefers and return their Web content accordingly.
Making use of this capability can be of enormous advantage for people that don’t really have a good command of English and would like to prefer content or, at least, menus and dialogs in their native tongue.
How can you instruct desktop Web browsers to request Web pages in the language of my choice?
With Internet Explorer, go to Tools/Internet Options/ General and click Languages in the Appearance group. Then, just click the Add button and choose the language you prefer from the list. Make sure you move it up the list (with the Move Up button) so that it'll be your primary language.
As far as the desktop Opera browser is concerned, I'll elaborate on it later.
The desktop Mozilla/Firefox must be configured in exactly the same way as the Pocket PC version (screenshot) - see below.
OK; now, how I configure my Pocket PC Web browsers to do the same?
It's, unfortunately, a bit more complicated. Read on!
A bit geeky stuff: HTTP and Accept-Language
(Note that understanding this section is not needed if you aren't a tech / geek type of person. However, trying to digest it can be very useful to understand my HTTP request header screenshots and to understand how, for example, my proxy servers work.)
First, to understand how the HTTP servers (that is, Web servers) are able to decide in which language they should return the requested Web page, it's very important to know that the HTTP protocol (the protocol used in communicating between a Web server and a browser) uses so-called 'HTTP request headers'. These requests tell the Web server what resource to get, whether it's cached on the client (so that the server only needs to return the resource again if it's been changed in the meantime), whether the client has 'cookies' stored about the server to maintain Web sessions and so on.
One of these headers is called 'Accept-Language' and tells the Web server what language the client prefers (with, optionally, an additional country code and/or quality setting when there is a list of preferred languages). For example, if you'd prefer pages in Finnish instead of the default English, this header looks like the following:
Accept-Language: fi (or, Accept-Language: fi-FI - both are valid and can be used. The first, lowercase 'fi' stands for Finnish, the second, uppercase 'FI' stands for Finland. Note that, in general, the country code can also be lowercase; from now, on, I use lowercase letters to denote the country.)
If you'd prefer your preferred language to be Canadian French, you can use the following request header:
Accept-Language: fr-ca
And, as far as strictly US English is concerned, you'll often see this header:
Accept-Language: en-us
In order to be able to return a Web page tailored for your language preferences, the Web server MUST receive every HTTP request (Web page download) containing the Accept-Language header. If it doesn't receive it, it will in no way know what is your preferred language and will, in almost all cases, return the default one (English in most cases).

Does the system-wide Regional Settings have any effect on the preferred language?
Unfortunately, modifying the regional setting in Settings/System/Regional Settings doesn’t change the “Accept-Language” HTTP header sent out to the Web server (it’s based on this HTTP request header that most HTTP servers – except for Google, which uses a bit more sophisticated algorithm, which I’ll elaborate on later –, if they have content in more than one language, decide what language they should return their content in) – not even in the latest WM5 AKU2, as can also be seen in this screenshot. I took the screenshot on a Dell Axim x51v with the latest, AKU2 A12 ROM, after setting the regional setting to Germany (and rebooting). It certainly shows IEM sends out requests telling the Web server that it prefers U.S. English pages, no matter what the operating system setting is.
PIE AcceptLanguage in the Registry
Fortunately, WM2003SE+ IEM/PIE does store the language code in the Registry (and it, even more importantly, does use it) under HKEY_CURRENT_USER\ Software\ Microsoft\ Internet Explorer\ International\ AcceptLanguage. How it is accessed under different operating systems, however, is varying.
First, under Pocket PC 2000 (the first Pocket PC operating system version), there is no International key at all as can also be seen in here. That is, it’s futile to create the above value in the Registry – it just won’t work.
Under Pocket PC 2002 and WM2003, this value does exist with the value “en-us” for devices with the (American) English ROM. These operating systems, however, do not take this value into account and don’t send out any Accept-Language header as can also be seen in this and this screenshots for PPC2k2/WM2003, respectively.
It’s only with WM2003SE+ operating systems (WM2003SE and WM5) that PIE copies the value of this string value to the HTTP request. However, interestingly, on English devices, the value, by default, doesn’t exist (unlike on Pocket PC 2002 / WM2003 devices, where, much as it does exist, its value isn’t used in the communication with HTTP servers in any way) – this is why I, at first, didn’t realize it’s there and usable. (I've tested this on four different WM5 devices (x51v, hx4700, Wizard, Universal) and on the WM2003SE PL720. None of them had this value, unlike, again, my Pocket PC 2002 Compaq iPAQ 3660 / WM2003 HP iPAQ 2210.)
(Note that there are two other places of the registry having PIE/IEM-related information: HKEY_LOCAL_MACHINE\ SOFTWARE\Microsoft\Windows\ CurrentVersion\ Internet Settings and HKEY_LOCAL_MACHINE\ SOFTWARE\ Microsoft\ Internet Explorer. There, however, is no language-specific information in there.)
All in all, if you have a WM2003SE+ Pocket PC, you can just create a String value named “AcceptLanguage” under the HKEY_CURRENT_USER\ Software\ Microsoft\ Internet Explorer\ International key with the correct language code (with, when needed, also the country code if it’s necessary).
If you don’t want to create the value by hand, I’ve created a registry import file to do the job for you. It’s available HERE. All you’ll need to do is importing it with a Regedit5-compatible registry editor like Resco Registry Editor (please also see this roundup of registry editors for alternates / converting the file to REGEDIT4 format to be able to import with REGEDIT4-only registry editors like Kilmist and Tascal.) Don’t forget to change ‘en-us’ to your language first (for example, ‘ru’, ‘fi’, ‘fr’ etc.) Also, you may want to use some kind of associated quality value as is defined in section 14.4 of the official HTTP 1.1 header specification. (For example, to express "I prefer Danish the most, but will accept (preferably) British English and, finally, other types of English", use the string “da, en-gb;q=0.8, en;q=0.7”)
Do PIE/IEM plug-ins let for changing the language?
Unfortunately, PIE/IEM plug-ins like PIEPlus, MultiIE or Spb Pocket Plus (click the links for the latest reviews!) don’t let the user directly supply this vaue – ypu’ll need to directly modify the Registry in order to configure this value.
What about NetFront?
As far as alternate browsers are concerned, NetFront 3.3 sends out the ‘en’ language code by default . While it is supposed to have support for changing the request language, it, as with many other NetFront features, is buggy.
In order to test this yourself, you'll need to create a new User-Agent entry in (Menu/)Tools / Browser Settings / Misc (as the default entry can’t be modified). There, choose an empty (or, if you've already defined an alternate User-Agent setting, anything different from the default "NetFront v3.3 Standard" custom setting. In this screenshot, I show an example of selecting an empty entry - you'll see this before creating any new User-Agent record. After this, just click the Edit button on the right, give the new setting a new name (in the top "Title" textfield; in this example screenshot, I've called it "Finnish NetFront") and, in the bottom-most "language" input field, enter the language code (in this screenshot, "fi"). Now, click OK; the new entry will be selected as can be seen in here. Now, you can give the new settings a try; as can be seen in here, the language code sent out is still the default 'en'. (Note that in this example I've also changed the User-Agent to 'My custom Accept-Language tester User-Agent to show what U-A is sent out' from the default 'Mozilla/4.08 (PDA; NF33PPC3AR/1.0) NetFront/3.3' so that we can see Netfront indeed sends out the modified header.)
Note that NetFront has a “Base language” setting in View/Advanced Setting. The setting (which can’t be fine-tuned; for example, North-European languages are only a group and not individual languages), has no effect on anything (it only tells the browser the default encoding it should use when trying to render the page brought back) either.
What about Opera Mobile?
Opera 8.6 doesn’t send out any Accept-Language header at all (click the links to see the screenshots showing this!).
Note that, on the desktop, Opera supports this and it can even be freely redefined in the GUI. I’ve checked the desktop INI files to see whether it’s there that this information is stored (many desktop-based configuration options are also accepted and interpreted by the Pocket PC version of Opera Mobile). Unfortunately, that’s not the case.
NetFront and Opera Mobile – a summary
All in all,
unfortunately, as of their current versions (8.6 of Opera and 3.3 for NetFront) neither of these browsers look up/use the value of HKEY_CURRENT_USER\ Software\ Microsoft\ Internet Explorer\ International\ AcceptLanguage
you can’t configure them either to do so: the built-in request language feature in NetFront doesn't work
In a later section, I'll elaborate on how you can still add/modify an/the Accept-Language header when using these two apps.

What about Thunderhawk?
Thunderhawk also sends out the english-by-default header. Unfortunately, it can't be modified in the Settings dialog, it doesn't take into account the PIE/IEM registry setting and, as Thunderhawk doesn't let you use proxy servers, you can't use external proxy servers either to modify this header. This means it's fully impossible to change the language preferences using Thunderhawk, as opposed to all the other browsers.
What about Minimo?
The (as of writing) latest (08-27-2006) Minimo nighly build offers seamless Accept-Language definition capabilities.
While it doesn't use the PIE/IEM registry value for overriding its setting, you can easily modify the header. To do this, enter the “about:config” URL in the address bar. You’ll be taken into the preference list screen. There, just enter ‘lang’ in the Filter field and, then, you’ll be taken right away to the intl.accept_languages property as can also be seen in this screenshot. Double-click intl.accept_languages and edit the value as you find it OK and press Enter. Then, in the config list, “default” will change to ‘user’ and the headers will indeed be correctly sent out.
Paragon Language Extender
Paragon Language Extender is a well-known language changer application (including HTTP request modifying capabilities) for all Pocket PC (and Handheld / Palm-size) operating systems prior to WM5 (there is no WM5 version and never ever try to install the Language Extender on a WM5 device – I’ve tested it on the WM5 Dell Axim x51v; I had to hard reset).
Among other things, WM2003+ versions of the Paragon Language Extender also support dynamic language change as can be seen for example in here:
{
"lightbox_close": "Close",
"lightbox_next": "Next",
"lightbox_previous": "Previous",
"lightbox_error": "The requested content cannot be loaded. Please try again later.",
"lightbox_start_slideshow": "Start slideshow",
"lightbox_stop_slideshow": "Stop slideshow",
"lightbox_full_screen": "Full screen",
"lightbox_thumbnails": "Thumbnails",
"lightbox_download": "Download",
"lightbox_share": "Share",
"lightbox_zoom": "Zoom",
"lightbox_new_window": "New window",
"lightbox_toggle_sidebar": "Toggle sidebar"
}
In this case, ‘de’ denotes I’ve installed the German extender; the screenshot also shows it has its own German-language dictionary.
Interestingly, the Paragon Extender doesn’t create HKEY_CURRENT_USER\ Software\ Microsoft\ Internet Explorer\ International\ AcceptLanguage. It does “sit on” the operating system and inserts its own Accept-Language header into the outgoing PIE requests. (Note that if you do create HKEY_CURRENT_USER\ Software\ Microsoft\ Internet Explorer\ International\ AcceptLanguage by hand, it’ll override that of Paragon).
Note that there are two major versions of Paragon Lang. Extender: and old, PPC2k/PPC2k2-compatible, 4.23 version still available for non-major languages (that is, not available for, say, German or French but available for, say, Finnish, Bulgarian or Arabic) and a new, WM2003/WM2003SE version (the latter is build 4710 for for example Finnish). Unfortunately, the former does NOT make the PPC2k2 PIE send out the correct header. That is, it’s not possible to make the Pocket PC 2002 PIE to send out the correct request with either using Paragon Lang. Extender or, as we’ve already seen, by directly overwriting HKEY_CURRENT_USER\ Software\ Microsoft\ Internet Explorer\ International\ AcceptLanguage.
Finally, in WM2003SE, the Paragon app is not recommended over the “traditional” way of overwriting HKEY_CURRENT_USER\ Software\ Microsoft\ Internet Explorer\ International\ AcceptLanguage – it's an overkill and I only recommend it for “plain” request language modification if you need its other capabilities too.
Note that if you don’t need your device to be fully translated, you won’t need to install the full version – the second, Compact setup (as can also be seen in here) will do just fine. The results after the setup will be as follows:
What can I do if I want to browse the Web with a Pocket PC 2002 / WM2003 PIE or with Opera Mobile / NetFront?
You have two choices.
if you have the capability of running a proxy server somewhere (even on your Pocket PC PDA with a suitable Java Virtual Machine (please read this article and search my blog for the word 'Java' for more info) - after all, it's multiplatform); for example, on a 24/7 online desktop PC,
with a client that can be configured to use an external HTTP proxy (in this regard, Thunderhawk is disqualified) and does send out the Accept-Language header (in this case, NetFront), you'll need to use an external proxy server to change the language code sent out to another one before sending the request further, to the target Web server. If you have a Java Virtual Machine (easily downloadable from here - select 'Java Runtime Environment (JRE) 5.0 Update X'), I’ve written an easily modifiable, open-source (source here) HTTP proxy server available here. You will only need to start it with the command
java HTTPProxyAcceptsLangHeaderRewrite portnumber languagecode
if you have a JRE (I’ve compiled the class with JDK 1.3, so, any JRE will do) installed on your PC (again, you can get it at the above-linked Sun page).
For example, the command
java HTTPProxyAcceptsLangHeaderRewrite 8080 cool-eh
will result in the following response from http://www.proxydetect.com/ (after you correctly set up your Pocket Internet Explorer / NetFront browser to use the proxy - please see for example this article on doing so):
This shows that indeed the (of course non-existing) ‘cool-eh’ language code was sent to the server.
If you, on the other hand, have a proxy-configurable client that does not send out the Accept-Language header (the case with PPC2k2 PIE and Opera Mobile), you’ll need to explicitly add the header to the headers relayed to the HTTP server. To do so, you'll need this Java class file (source here). Its usage is exactly the same as with the previous bullet.

The results of using this header-adding proxy server can be seen for example here (showing Opera Mobile).
[/LIST]
Mail the webmaster of the given webpage to do a dynamic country lookup depending on the client’s IP (internet) address instead of the Accept-Language header. Say, if you have a Thai client IP address, you would receive a page with Thai content even if your Web client sent out an Accept-Language header of ‘en-us’ (or no language code at all). Many Web sites do so – for example, even Google. Google, if it doesn't receive an Accept-Language header or the header (if it does exist) is the standard one requesting English pages, then, just looks up the country of the client and returns the content accordingly, in the local language of the country. If the Accept-Language header exists and it's set to something other than English, it'll return the page in that local(ized) language. This is what Web server administrators should strive for.
What about devices with non-English ROM's? If I, say, dump / sell my English Pocket PC and get a German one, will I get German pages instead of English ones?
Note that I wasn’t able to reliably test how and what Accept-Language headers the Web browsers on a Pocket PC with a non-English ROM send out. I don’t think the built-in PIE would request English pages on a Pocket PC with a German language ROM, but I may be mistaken (after all, PIE / IEM isn't the most sophisticated Web browser). The same (I don't know how it behaves on devices with non-English ROM's) stands for NetFront, which does send out the language header. Finally, as far as Opera Mobile is concerned, I seriously doubt it’d send out the correct header on any (non-English) Pocket PC – after all, it doesn’t seem to be sending out any kind of language header. (Incidentally, it has the ‘Accept-Language’ string once in opera.dll but there doesn’t seem to be any parameter to it.)
Acknowledgements
My blog reader ‘Begemot’ from Russia to point out the never-anywhere (give for example searching for “AcceptLanguage” a try on major PPC boards like PPCT, Brighthand, AximSite, XDA-Developers (and on Google) etc. Note that, on the latter, there will be some (false) hits because of the MMS handler app on WM PE devices) discussed (this is why I didn’t know of it before either – and, as the given AcceptLanguage value only exist under PPC2k2 / WM2003, I haven’t run into it in the Registry either) HKEY_CURRENT_USER\ Software\ Microsoft\ Internet Explorer\ International\ AcceptLanguage. Without him, I wouldn’t have been able to write this tutorial in its present form. Thumbs up

The Netfront-related part of the article updated – along with a new Netfront bug I’ve just found. I’ve also slightly modified the PIE-related part with new, WM2003-related info.

Related

EVERYTHING you need to know about internation. issues. MUST for webadmins & -authors!

EVERYTHING you need to know about internation. issues. MUST for webadmins & -authors!
Web authors, -masters and Pocket PC Web browser users attention: everything you need to know about internationalization and "special character" issues in current PPC Web browsers
Over at the AximSite forums, I've been presented an interesting bug in famous Pocket PC Web browser NetFront, which made me experiment with the internationalization (i18n for short) issues of all Pocket PC Web browsers (and, for that matter, all the three most important desktop Windows ones). I've long been planning a test like this to see how Pocket PC Web browsers compare to desktop browsers in terms of i18n issues.
Elaborating on these issues is not just an über-geek, useless waste of time but can prove very useful if you, for example, speak a non-Western language and would like to read pages written in them or post messages on Web boards in the given language using your Pocket PC.
You can run into these problems even if you don't plan to post in any non-Western language or non-English forum / pages as can be seen in the above-linked AximSite example. All it takes a poster to use Word to compose his or her posts or articles and you end up seeing square characters (or simply nothing) instead of apostrophes and other, special, but otherwise Western characters if you use NetFront as a client. (Note that earlier, Minimo also had very similar problems with UTF-8-encoded pages I've elaborated on in here. These have been in the meantime, thanks to my bug reports, fixed. Also, very early versions of Minimo couldn't render non-Western characters on any page encoded in 8-bit as you can also see in my well-known Web Browser Bible. Those problems have long been fixed.)
Note that my inability to speak / write / read any Middle-East language (Arabic, Hebrew) and write/read Far-East languages like Chinese or Korean, I could only check non-Western, but still left-to-right languages like Russian. That is, in here, I'm unable to elaborate on the issues of these Web browsers outside the Western / Central / Eastern-European language groups. Sorry for this - not even I can speak more than 7-8 (European ones / Japanese) languages
1. URLs with accents
My first test was finding out whether you can enter URL's with accents in them into a given browser. (I recommend for example this article on the subject for more info. It's its test URL that I've used.)
Note that it's highly unlikely you'll ever see any URL's with accents in them (that is, this problem is pretty much non-existent); still, it's nice to know which browsers are able to render these pages. Yes, being able to use the built-in PIE as a "fallback" browser in these cases is highly advantageous.
The results (+ means compatible, - means not compatible):
Click here for the chart
As can be seen, only PIE supports this (as opposed to the desktop version) and Minimo (which I've expected, given that Minimo is the closest to its desktop version of all the Pocket PC browsers available).
(Note that, on he desktop Windows, Desktop IE7 RC1 and Opera 9.02 don't support this by default without explicit reconfiguration (see the above article on this); Mozilla / Firefox does.)
2. Displaying non-standard Western and non-Western characters
The second set of compliance tests is way more interesting and important than the first.
Note that this explanation will be a bit on the technical side; without some knowledge of HTTP and the HTML meta tags, you should skip the explanation and move straight to the summary column of the final chart (and the section following the chart). That is, don't read the following section if you don't know what HTTP is! Web browser developers (particularly those from Access!), website administrators and Web authors, on the other hand, should definitely read it in order to be absolutely sure the non-standard characters (again, it can be "plain" punctuation created by Word, not just non-Western languages!) contained in their documents are correctly rendered by all the browsers.
2.1 Test method
This test shows
whether the given browser takes into account the value of the
"Content-Type" HTTP response header
http-equiv meta tag
what the browser assumes (what it defaults to) when neither of them are defined (which is very often the case)
on the other hand, if there are both of them with different values, does the metatag-based override the HTTP response header.
For the test, I've written a custom HTTP server emulator accessed from all the tested Web browser applications. As usual, I'm making the source available so that you can freely test it if you prefer.
2.1.1 How my custom server emulator should be used?
The application listens to incoming HTTP requests at port 82. It requires a custom parameter (as extra path info - that is, you don't need to use the ? but / instead) in the following form:
http://127.0.0.1:82/xyz
(change 127.0.0.1 to the Internet address of your desktop PC's address if you want to access it from your PDA)
where
x tells the server emulator to set the ‘charset' attribute of the HTTP response header Content-Type. (Doesn't set it at all if you pass a ‘N' instead.)
y tells the program emulator to set the ‘charset' attribute of the "Content-Type" http-equiv meta tag. (Doesn't set it at all if you pass a ‘N' instead.) This is the only way for a plain user (not having access to the Web server configuration) to set a charset for a given page.
z tells the server what character encoding to use internally. In most cases, you can safely keep it as ‘2' for the test.
All values are one-digit numerals; I've tested the browsers with value ‘1' (Western charset) and ‘2' (Central-European charset). As has already been mentioned, with the first two digits, you can also supply ‘N' (which stands for ‘No', ‘Doesn't exist' or ‘Not known'); then, the given HTTP header / HTTP-Equiv tag won't be set / returned. If you set something other than ‘1' or ‘2' for the ‘z' digit, it'll default back to ‘1'.
For example, if you enter http://127.0.0.1:82/111 in your Internet Explorer browser running on the same machine as the server emulator, you'll see this.
In here, there are three rows of special interest (the fourth, the date row is only included so that you can be absolutely sure the browser doesn't just returning a cached document):
"8-bit 8859-1-only punctuation marks" contains strictly 8859-1 punctuation marks. You should see real punctuation marks (if you render the page as a 8859-1 page) after this introduction: no squares, no question marks, no nothing.
"Central-European chars (will ONLY work with the third parameter being 2):" contains two Central-European characters. You'll see them rendered in three ways: as question marks (if you pass anything but ‘2' as the third, ‘z' parameter), as
{
"lightbox_close": "Close",
"lightbox_next": "Next",
"lightbox_previous": "Previous",
"lightbox_error": "The requested content cannot be loaded. Please try again later.",
"lightbox_start_slideshow": "Start slideshow",
"lightbox_stop_slideshow": "Stop slideshow",
"lightbox_full_screen": "Full screen",
"lightbox_thumbnails": "Thumbnails",
"lightbox_download": "Download",
"lightbox_share": "Share",
"lightbox_zoom": "Zoom",
"lightbox_new_window": "New window",
"lightbox_toggle_sidebar": "Toggle sidebar"
}
(the closest Western rendering of these characters) and, finally, as
, which is how they should be rendered. (Finally, as a - mark (hyphen) in Thunderhawk because it doesn't contain any non-Western character in its custom character set.)
Finally, the third row will be always displayed the same way because it explicitly uses HTML Unicode character entities, which aren't affected by the language setting. That is, it'll be always rendered as
2.2 The chart
In the following chart, I've (keeping ‘z' as ‘2' in all the cases - again, it doesn't have direct affect on any HTTP header or HTML meta-tag, only the way Java encodes the returned contents) tested all the available combinations. This way, I was able to see
whether the HTTP-Equiv meta tag overrides the "Content-Type" HTTP response header (nope, only in NetFront - this is a big difference in NetFront and any other Web browser and should be modified by the NetFront people! Other browsers only take into account the meta tag if there is absolutely no charset parameter in the HTTP Content-Type response header)
if none of the two alternates are used, what charset the browser defaults to (fortunately, Western charset in all cases)
Click here for the chart
2.2.1 Explanation for the chart
2.2.1.1 NetFront and Content-Type (charset) overriding: different from the approach of all other browsers!
Again and again, NetFront works differently from all other browsers, header overriding-wise. That is, something that works on a desktop browser or any other Pocket PC browser will not necessarily work on NetFront if the HTML document contains a Content-Type metatag. Again, NetFront will override the encoding of the page with the value found in this metatag, unlike any other browser. This seems to be the reason why several people have reported char encoding problems with NetFront.
It should also be pointed out that the overriding being non-standards-compliance aside (which should be fixed by the Access folks - the developers of NetFront - as soon as possible), NetFront isn't able to display any extended punctuation mark contained in the 8859-1 codepage if you don't use the default (and ugly) Courier New font but switch to a proportional font. No matter what language info you return from the Web server, these characters will just not be displayed. A quick fix for this problem (before the Access folks fix this bug) is forcing the browser to, say, use the Central European (windows-1250 as opposed to 8859-2), Baltic or Greek encoding (but not to UTF-8, which hides all these chars) encoding as can be seen in here (note that now the punctuation is displayed in the background, on the Web page).
2.2.1.1.1 How Web administrators should treat NetFront clients?
This also means if you're a Web hoster / Web author and would like to allow your NetFront users to be able to browse your otherwise Western (8859-1) pages and there aren't any, say, French and Spanish names / texts on the website (with all those funny accented characters), you should consider marking these pages as, say, Central-European (windows-1250) or Baltic if and only if your client using NetFront (you can easily see this by checking for the User-Agent HTTP request header as has already been explained in several of my User-Agent header-related articles; for example, this one).
2.2.1.2 How Web administrators should treat Thunderhawk clients?
Incidentally, speaking of server-side User-Agent checking, if you operate a, say, Web site offering content in a Central-European language (that is, a language sufficiently close to Western languages, alphabet-wise; that is, in where using Western characters instead of some special, local characters - for example, using
instead of the "official"
), then, upon sensing the client's using Thunderhawk, you may want to force the content encoding back to 8859-1. That is, return the content as plain 8859-1 (Western) document. This will make sure non-Western characters will be converted back to their closest Western equivalent, resulting in a far better user experience.
2.2.1.3 Generic advice for Webadmins of web hosters: NEVER set the charset attribute in the Content-Type HTTP response header!
Also, the results clearly show if you're providing Web hosting service to customers, you should never set the character set the ‘charset' attribute in the Content-Type HTTP response because your customers won't be able to override it with their own encodings. For example, if you're a Central-European Webspace provider and use the local, non-Western language as default charset returned straight in the HTTP header, you'll make all your customers unable to provide content in the Western-European charset.
The situation is the same in the opposite direction: if you set the Western-European charset and you still have for example Russian customers that would like to publish their Russian pages on your server, most Web browsers won't be able to render these, not even if these folks explicitly try to override your encoding settings.
A real-world example: earlier, this all has been a huge problem with my current webspace provider. Due to cost considerations (I didn't want to pay big bucks to host a webpage I don't use for commercial stuff, just as a database back-end for my articles, images and other downloads), I've chosen a (compared to, for example, the Finnish Web hosting fees) very cheap Central-European webspace provider. It, however, before July 2006, also set the above-mentioned ‘charset' attribute to Central-European encoding, which made it impossible to put Word-generated/-exported English language pages on my page without first changing all the non-standard (extended) punctuation marks to their non-extended (and, therefore, less spectacular) counterparts. That is, when I, for example, posted a comparison chart HTML file there (I can't include comparison charts in Pocket PC discussion forums because of the forum restrictions and wide charts in my Smartphone and Pocket PC Magazine Blog - in these cases, I must link them from my back-end), I always had to change (with a generic search-replace in, say, Notepad) these characters back to the non-extended version.
Note that you can avoid all this hassle in Microsoft Word before starting to write your article / post by disabling the two checkboxes ("Straight quotes" with "Smart quotes" and Hyphens (--) with dash (-)) in Tools / Autocorrect Options / Autoformat As You Type. If you find it necessary and want to avoid problems with, for example, your NetFront or non-Western readers, make sure you do this (that is, disable the two checkboxes).
Now that, during a recent Web server update, this annoyance has been removed, I can post anything without mass-replacing 'special' characters (or disabling autocorrection in Word).
All in all: the inability to override (in everything but NetFront) the HTTP response header means a decent web hoster should never return the language / character encoding parameter in his / her Web pages if there is chance users would want to return pages in different encoding. This is, fortunately, the case with the majority of current web hosters.
3. Form Posting
The second main problem area is not displaying non-Western characters but posting such contents to Web servers via Web forms. In these tests, I've tested the same; with exactly the same input (punctuation, non-Western characters) and I've also added Western accented characters like ä and ö: I've posted these characters to the Web server and checked what they have become.
I've used two sites for this purpose: my PPCMag blog, which is 8859-1 (Western charset) by default and a Central-European server using the Windows-1250 (Central-European) encoding on all its pages. (The page encoding setting has direct effect on what is uploaded back to the server from a form.)
Click here for the chart
As can clearly be seen, the situation isn't at all bad with the three desktop browsers (I've encountered no compatibility issues at all - all special and even Central-European characters were visible in their original - unconverted! - form after posting, even when posted to an 8859-1 server).
With Pocket PC-based browsers, on the other hand, posting special / non-Western characters turned out to be much more problematic, particularly - as opposed to the desktop posting case - when posting to a 8859-1 (Western) server. Then, it was only Thunderhawk that was able to upload these characters; all the other clients either don't upload these characters at all or converted them.
An explicitly windows-1250 server was a bit better as far as NetFront is concerned: now, it was able to upload non-standard Western punctuation and non-Western accents.
Unfortunately, Opera Mobile has never been able to upload any kind of extended Western punctuation. This is a real bug that really should be fixed.
4. Non-8-bit file formats
In addition to 8-bit file formats (ISO-8859-1, Windows-1250 etc), there are some other, non-8-bit file formats. One of them is Unicode, of which a test page is here. Another is UTF-8 (test page here; OK, I know this is, technically, a 8-bit file format, using 2 or 3 bytes for extended 8859-1 or Unicode characters. I didn't want to create a different category for it.)
The former is almost never used on the Web (albeit it's possible some, say, Chinese or Japanese site will use it); the latter pretty extensively in the non-Western language areas. Its penetration in Central-Europe (excluding languages using cyrillic characters) may be 10-20% (because the special characters of these languages are easy to map into a 8-bit chartable); in China/Japan or other languages using alphabets containing Kanjis and other special (and numerous) characters, around 100%.
In this test, I've tested whether the Pocket PC web browsers are able to read these pages (see the above two links if you want to give them a try). As can be seen, the situation is pretty good: the common UTF-8 is read by all browsers. IEM and Minimo fail to render Unicode files, though.
This is, again, not a big problem at all - I've yet to see a Web page that uses Unicode instead of UTF-8. Note that this is one of the very slight differences between Minimo and its desktop big brother, Mozilla / Firefox. The latter, as with the desktop Opera and Internet Explorer, is able to render Unicode files too.
Click here for the chart

Browsing the Web on MS Smartphone (WM Standard) devices & Review of Opera Mini 4 beta

Browsing the Web on MS Smartphone (WM Standard) devices & Review of Opera Mini 4 beta
UPDATE (08/17/2007): a new version is in the brand new, general Smartphone forum HERE. That is, go there to read the latest version of the article. I, however, keep this version of the original article because of the responses.
(end of update)
In my recently-published, well-known Windows Mobile Web Browsing Bible I’ve elaborated on how Pocket PC’s can be used to browse the Web. Please make sure you DO read the review even if you don’t have a Pocket PC. You will learn a LOT from there and, in addition, I do NOT elaborate on many questions like Web standards compliance or additional Opera Mini features in here. In the current review, I “only” elaborate on questions ONLY concerning the MS Smartphone platform. The only exception is the review of Opera Mini 4, which is a generic one and can be used by Pocket PC users as well.
Now, it’s time to review
how you can do the same on MS Smartphone (Windows Mobile Standard) devices (SP for short); what browsers you should use, what bugs you should be aware of etc.
the brand new and REALLY NICE, HIGHLY recommended Opera Mini 4 platform. This section will be of interest to not only SP users, but also those of the “big brother”, the Pocket PC – and, for that matter, any Java-capable mobile phone.
As you’ll see, on the SP platform, there’re far fewer really usable browsers and there are (currently) absolutely no Java and real Flash support. This, fortunately, makes one’s life far easier – generally, you only have three browsers to select from: either Opera Mobile, Opera Mini or the really promising newcomer, jB5. The two Operas are, as you may have already guessed, generally superior to the built-in Internet Explorer Mobile.
However, let’s start with the latter as it comes built into the operating system of all SP devices.
1.1 Internet Explorer Mobile (IEM)
Unfortunately, the SP version of the built-in IEM, even as of Windows Mobile 6 Standard (that is, the latest SP operating system version), is considerably inferior to the Pocket PC (PPC) version shipped with WM6. For example,
while the PPC version of IEM has received file uploading capabilities some two years ago (with the initial release of WM5), not even the latest, just-released, WM6 version of IEM is capable of the same as can be seen in HERE (showing the results of my traditional file upload test page – see the previously linked page for more info on what the screenshot should show). Note that the SP version of Opera Mobile has no problems with file uploading (1 2 3 4)
it also has major problems with some HTTP / scripting constructs never having caused any problems to the Pocket PC brother; most importantly, it has problems with posting to Smartphone Thoughts and Pocket PC Thoughts forums from IEM. (The PPC port of IEM has no problems with posting to these sites; neither do Opera Mobile and Opera Mini on the SP platform.) Interestingly, this is NOT a problem on several models (even including WM6 ones) - and, in some occasions, it even worked on my Vox. I don't know why - it probably depends on the size of the message. Also see for example Mike Temporale's posts and links in THIS thread.
it doesn’t support tabs and, as you may have guessed, none of the known, Pocket PC-only PIE / IEM enhancers (MultiIE, PIEPlus, Spb Pocket Plus, ftxPBrowser etc.) work.
just as on the Pocket PC, you can’t make use of the hardware buttons (except for the “Back” button) AND the dialpad buttons (except for the 2/4/6/8 buttons for page scrolls) of your Smartphone. In this respect, both Opera Mini and Mobile are better. Fortunately, the most common functionalities are accessible, in general, with two or three (depending on whether you start from full screen mode) key presses. Fortunately, there are some registry hacks that - at least to a certain degree - fix this, which I’ll later, in a subsequent section, elaborate on.
download-wise, it’s really different from the Pocket PC IEM: it’s only CAB files that can be downloaded (if at all – see later), nothing else. This is in stark contrast with both the PPC version and Opera Mobile on the platform, which uses the same, vastly superior download-specific code as the PPC version. You must do some manual, extensive Registry editing to fix this problem - and, even then, you will need to do this for each file type you'd like to see downloaded. I too address this issue in a later section.
Note that isn’t not only files that have no local, associated programs to operate on are refused to be downloaded, but EVERYTHING, even registered and, by default, supported file types like ZIP and PDF files (fortunately, Office files are supported if your device does contain Office Mobile – an example of an XLS file is HERE).
Some examples of these cases:
non-associated RAR files (for example THIS). Upon trying to download files like these, you get THIS error message (unlike with Opera Mobile).
PDF files with the, on the HTC Vox, associated, built-in Adobe Reader LE. An example PDF file is HERE
ZIP files, like THIS, associated with Resco File Explorer.
Furthermore, the old problem with CAB files served as of unknown type is present in this version too. For example, while THIS CAB file is server as binary and, therefore, offered for download, THIS one, which is returned as of unknown (text/plain) type, results in the well-known, useless textual representation (while Opera Mobile downloads it just fine). The CAB problem has always been a major problem with the PPC version as well, as is also explained in the Download Bible.
Note that I’ve also had downloading problems on my WM5 HTC s310 (Oxygen) upon trying to download a 2.5M Byte CAB file (the Smartphone version of Opera Mobile HERE) via an EDGE connection. No matter where I tried to store it (the device had about 10M free built-in storage), the transfer would stall at 300-600 kbytes (I’ve tried to download the file several times), while, under exactly the same circumstances (the same network coverage, the same file etc), my WM5 HTC Wizard Pocket PC downloaded the file without problems. I haven’t encountered similar problems on my WM6 HTC Vox (s710). I don’t know whether this was a temporary problem or generally a problem with WM5 SP IEM’s over slow(er) connections and large(r) binary (in this case, CAB) files. Just keep this in mind if you have similar problems.
As far as the WM6-specific fixes are concerned, the WM6 SP version of IEM, fortunately, supports iframes as can be seen in HERE. (It’s suffering from the same width problem as with the PPC version, though – even in Single column mode. This isn’t an issue on Opera Mobile and Mini.)
All in all, I do not really recommend IEM for regular Web browsing on SP’s if you don't apply the above-mentioned (and below-explained) registry hacks. Go for either Opera Mobile (which is, as far as the new, 8.65 beta is concerned, free until Oct. 1. Of course, being free until October doesn’t mean you shouldn’t support the company – do purchase for example their 8.60 version to support their continuous efforts to give us the BEST Pocket PC, Smartphone and, in my opinion, desktop Windows browsers) or the absolutely free and excellent Opera Mini.
1.1.1 Fixing the binary file download problem
The difference between the SP and the PPC version of IEM is pretty simple. While the latter doesn't require a given file type to be registered in the local Registry to be downloaded, the former does, and also requires a specific flag (the fifth "bit" in EditFlags) to be set to one.
This is why "unknown" file types like RAR or known file types that don't have the EditFlags value are refused to download. You can, fortunately, fix it. In here, I describe both the manual and the automatic, much easier way of doing this. The former includes heavy Registry editing, but might prove useful in cases you'd like to allow for downloading more file types than the automatic way offers.
1.1.1.1 Manually enabling downloding a given file type
Let's assume you want to enable ZIP file downloading. To do this, first, you have to fire up a registry editor (I recommend that of Resco - it's well worth the price).
First, as ZIP files end in .zip (that is, have the file extension 'zip'), you need to navigate to HKEY_CLASSES_ROOT\.zip to see what full name it references (it's the latter that you will, later, create a new EditFlags DWORD in). As can clearly be seen in THIS screenshot, it refers to another Registry entry, Resco_zipfile.
Go to the given extension, still under HKEY_CLASSES_ROOT, and select Menu / 1 File / 1 New / 5 DWORD Value
enter EditFlags in the “Name” field
enter 65536 (that is, hexa 10000) in the DWORD Data field; press Done (left softkey)
now, the new entry should be visible and the ZIP download working (Similar screenshot with EXE files HERE and with PDF files HERE)
Incidentally, if you've read my past EditFlags-related remarks & explanations (for example HERE), you know the uppermost "bit" has a special download-related meaning. If it’s 1 as in HERE, the file will ONLY be downloaded to the main memory and you’re not presented the usual download screen where you can also set the target – instead, the download will start at once. That is, make double sure you don't set it to 1!
Wasit complicated? Certainly it was! Rejoice: now comes the much easier / safer, automatic way! If you're a newbie to Windows Mobile (and/or Registry editing), you will want to prefer THIS registry import file I’ve created for you. It sets the PDF, ZIP and EXE download associations. Note that the latter assumes you’ve installed Resco Explorer and PDF requires the Adobe Reader LE 2.1 (for example, the one shipped with the Vox). You will - after installing Resco Explorer, along with its Registry support - just click the file once you've transferred it to your PDA. After (re)starting IEM, the changes will be visible - and the files downloaded.
Finally, should you need support for even more (not just PDF, ZIP and EXE, but also rar, doc, mpeg, mpg, mp3 and avi) file types, you will want to check out THIS MoDaCo thread (the CAB file installer by rcperez). All you need is running the PIEPlugin.cab file (note that the Download Plugin for PIE Updated.zip file contains the same PIEPlugin.cab also separately downloadable file) linked in the first post. You won't even need to have a Registry Editor. (Note that there are some, similar threads for only one extension type: ZIP, EXE. However, make sure you prefer rcperez's hack.)
1.1.2 Adding more functionality to the phone dialpad
MS Smartphones have something that (most) traditional Pocket PC's don't have: a phonepad: consisting of 10 numeric keys, the # and the * buttons. Knowing the most common functionality a Web browser user wants to have access to (quick scroll up/down, to the top/bottom of the page; reloading; - with multi-document browsers - switching to the previous / next tab; quickly switching between the different rendering and layout modes; quickly changing the character size / zoom percentage), many of this functionality can be quickly accessed by making use of the 12 extra buttons.
As has already been pointed out, IEM only makes use of the '2' and '8' keys by default. These two buttons can be used to do page scrolls, as opposed to the link scrolls accessible on the D-pad, combined with fast scrolling introduced in later WM5 AKU's, should you continuously depress the D-pad. You can, fortunately, assign (some) functionality to all the other remaining ten buttons.
Unfortunately, there are far fewer functions you can assign to the buttons, but even this is definitely a step forward. Let's have a complete list of the functionalities that can be accessed (note that I'll explain the numbers later, when discussing how the Registry should be modded):
Functionality (Registry values):
1 - Page Up (default under (later?) WM5 / WM6)
2 - Page Down (default under (later?) WM5 / WM6)
3 - Top of page
4 - Bottom of page
5 - Page Left in non-one column view / modes
6 - Page Right in non-one column view / modes
7 - Page FULL left in non-one column view / modes
8 - Page FULL right in non-one column view / modes
9 - Default Layout
10 - Desktop Layout
11 - One Column Layout
12 - Full Screen Toggle
13 - Show Pictures Toggle
As can clearly be seen, there're no goodies like "Refresh" in here. However, even then it's pretty much useful.
Now, let's see what these numbers are for. To understand their meaning, I elaborate on how the Registry stores the keypad button - functionality pairs.
In the Registry, it's the [HKEY_LOCAL_MACHINE\ Software\ Microsoft\ Internet Explorer\ KeyMaps] key that stores values (NOT subkeys!) connecting keys with functionalities. In general, it's done in the following way: the value name's the keycode and the value of the value is one of the above-listed functionalities.
The keycodes are as follows (that is, the Registry value names):
48: 0
49: 1
50: 2
51: 3
52: 4
53: 5
54: 6
55: 7
56: 8
57: 9
119: *
120: #
I've created a registry import file that assigns most the available functionality (except for "Page FULL right in non-one column view / modes"). All you need to do is importing it (with, say, Resco Registry Explorer) and (re)starting IEM. The effects will be seen at once. The registry import file is available HERE and has the following key assignment:
0: full screen (12)
1: Show Pictures Toggle (13)
2: Page Up (1)
3: top of page (3)
4: Page Left in non-one column view / modes (5)
5: Page FULL left in non-one column view / modes (7)
6: Page Right in non-one column view / modes (6)
7: default layout (9)
8: Page Down (2)
9: bottom of page (4)
*: Desktop Layout (10)
#: One Column Layout (11)
For more (not mandatory) info, also see THIS, THIS, THIS and THIS.
1.2 Opera Mobile
(a QVGA screenshot; note that, as with IEM and Opera Mini, Opera Mobile is perfectly usable on low-resolution, 176*220 Smartphones too)
Currently, this really excellent browser is even more usable on the Smartphone than on most Pocket PC (that is, Pocket PC’s without a dialpad on the face of the phone – an example of PPC models with a dialpad is the ASUS P525) because of the functionality shortcuts assigned to these buttons. As has been pointed out in the Web Browsing Bible (which is a good read even for people that don’t own a Pocket PC), currently, it’s not possible to assign any otherwise assignable functionality – for example, page up/down, jump to beginning of page etc. – to Pocket PC hardware button. The situation is entirely different with the Smartphone platform.
This is all topped with the traditional Opera Mobile strengths: speed, standards compliance, being multi-tabbed (of course, tabs aren’t displayed in the SP version; however, it’s very easy to quickly (!) switch between loaded pages), no binary download-related problems, upload support etc.
There are some minor (!) bugs with the SP version, as opposed to the PPC one. These are in no way as bad as the problems with IEM, though.
The Register can’t be browsed without zooming out and/or switching to Landscape mode on QVGA screens. This is because, for some reason, one-column mode is just hidden when browsing The Register. Screenshots: 1 2
The standard Smartphone "Back" button doesn't work in the cache setting text input field, which makes it impossible to change the value (other than adding, say, a new number in front of it, which is NOT recommended in any way for a reason I elaborate on later). The "Delete" key on built-in QWERTY keyboards (when they exist), on the other hand, do work. This is a minor problem on models with no built-in QWERTY thumb/keyboard. Tested on both the Vox (has a QWERTY keyboard) and the Oxygen (no keyboard). Note that you can always manually edit (with a file explorer tool) the Size value in the [Disk Cache] section of \Application Data\ Opera\ opera.ini if you want to change this value.
If you install Opera Mobile to a storage card, the file associations won’t work with HTML files and URL’s (for example, links in e-mails) as can be seen in HERE. The problem with PPC version 8.60 was the same; unfortunately, the registry script (see THIS article) I’ve created for the latter doesn’t help with the Smartphone version.
Has some minor problems with image handling. When the browser is presented with more than, say, 7-8 images in a page, it may not download them all (or, for that matter, any of them). Give a try to THIS page to see this in effect - on my QVGA Vox, it didn't render any images. The situation was pretty similar on the old(er) Oxygen (with other pages).
When you manually enter a URL into the "Go to" text input field on the Vox keyboard, you can't enter a string longer than the screen estate size (give a try to entering, say, the above link!) This problem can only be fixed by trying to visit the part that can still be entered and, then, returning to Action / Go to, finding the first part of the URL already entered and going on with entering the latter part(s). Dunno if this problem is caused by the OS or Opera Mobile.
If you define a HUGE cache (to bring down data usage costs), the responsiveness of the browser REALLY decreases. For example, on my Vox, I had a cache with about ~10M files (in the main storage). With that, Opera takes over a minute (!) to start and, after loading a new page (WITHOUT images!) about 10-15 seconds to flush it to the cache, during which you can't for example scroll up/down to go on reading. That is, you need to stick with the default 2M cache to get rid of these problems.
If there is little RAM memory left, the Smartphone dialpad keys (2, 6, 9 etc.) stop working. Instead of their default functionality, they result in reloading pages / moving elsewhere. In these situations, an error message like "Due to RAM memory shortage, the requested action couldn't be done." could be shown.
Again and again, this is more of nitpicking – Opera Mobile for the MS Smartphone still stays THE best Smartphone Web browser. For example, it still supports even saving images (in the Image mode – see the explanation in the usage chart).
Probably the only really annoying bug is the fact that, as of 8.65 beta released on 06/01/2007 and usable until October this year, it only remembers HTTP proxy servers during the first page request after starting; the other requests are directly sent to the HTTP server. To test this, give it a working (for example, at the time of writing, 82.204.47.120:8080 was one of them) proxy address in \Application Data\ Opera\ opera.ini (as is explained in the Toonel-related section) and, then, after restarting Opera, go to WhatIsMyIP.com. Upon the first invocation, you’ll see the proxy’s address as the originating address. Upon later invocations (for example, after just refreshing the page), however, it’ll switch to direct access – and the IP address it displays will also reflect this.
This, unfortunately, means currently you won’t be able to local proxy-based bandwidth usage reduction solutions like Toonel with Opera Mobile. Neither will you be able to use external proxies to either conceal your real IP or get outside of a corporate network.
1.3 Opera Mini 4.x
{
"lightbox_close": "Close",
"lightbox_next": "Next",
"lightbox_previous": "Previous",
"lightbox_error": "The requested content cannot be loaded. Please try again later.",
"lightbox_start_slideshow": "Start slideshow",
"lightbox_stop_slideshow": "Stop slideshow",
"lightbox_full_screen": "Full screen",
"lightbox_thumbnails": "Thumbnails",
"lightbox_download": "Download",
"lightbox_share": "Share",
"lightbox_zoom": "Zoom",
"lightbox_new_window": "New window",
"lightbox_toggle_sidebar": "Toggle sidebar"
}
(VGA PPC screenshot running under the Intent midlet manager (hence the non-used command bar at the bottom); a QVGA Smartphone screenshot HERE)
I’ve often reported on Opera Mini, which, as of the current 4.x series beta, has become a serious contender to even native Windows Mobile Web browsers, particularly on the touch screen-less Smartphone platform, where the lacking features of Opera Mini (for example, lack of context menus or copy / paste capabilities) aren’t a problem because of the lack of the touch screen. (That is, you couldn’t use these features on IEM either – it’s only Opera Mobile, with its excellent link / image context menus even on the SP platform, that still offers a bit more functionality than Opera Mini.)
1.3.1 What’s new with the brand new, 4.x Opera Mini series?
Nokia’s having pioneered the quick zoom functionality in their excellent S60 series 3 Web browser, Windows Mobile browsers quickly followed suit: first, NetFront in the second Technical Preview of their forthcoming 3.4; then, Microsoft in their (beta-stage and still far from being finished) DeepFish.
Opera, the, in my opinion, by far the finest (give a try to their desktop browser, particularly if you have an (W)SXGA+ or (W)UXGA screen – you’ll love it!) browser developer company, soon followed suit. In addition to announcing the forthcoming Opera 9, which is a native Windows Mobile application, with similar capabilities, they have also added full page view & quick zoom capabilities to the brand new series of Opera Mini, their Java Midlet-based, small, but still VERY powerful multiplatform browser.
Just visit THIS page (the SWF file, should you want to directly download it, is HERE) and see what Opera has come up with. It’s indeed very cool, isn’t it? All this in a VERY small package (90 kbytes), with almost unmeasurable runtime (dynamic RAM) memory consumption. Compare this to the memory consumption of traditional Web browsers – yes, they consume orders of magnitude more memory. Note that there are a some other, cool videos on Opera’s homepage running the browser in reality – those videos are far more instructive than my static screenshots.
This browser, as has also been pointed out in the Web Browser Bible, runs great on Windows Mobile, on both Pocket PC’s and MS Smartphones, in both common factory-default midlet environments, the Intent (the industry standard on almost all WM5-based PPC and SP phones, except for the Esmertec-based HP iPAQ hx6915) and the Esmertec (shipped with many natively WM6 phones like the HTC Vox / S710) midlet managers.
It’s by far the best J2ME (Java midlet) browser: other Midlet-based browsers are far worse in every respect. For example, jBrowser can’t even display middle-sized pages like the PPCMag blog page, the PPCT main page as can be seen in HERE and, for smaller pages, it will never finish loading.
As has already been pointed out, the best new feature the new version offers is Zoom-in / full page view functionality. Its “let’s crunch the text into the viewable screen estate” works just great – much better than I’ve expected or what most of the other browsers do.
You’ll REALLY love the new page view functionality if you want to check out for example
THIS is the desktop rendition of the Finnish stock exchange in a tabular form. Now, let’s take a look at them in the default, pre-series 4 one-column mode:
and this is how the new, full page layout mode renders it (zoomed in):
and zoomed out, showing the entire page:
A big difference in usability and readability, isn’t it?
Of course, in most cases, if you don’t want to browse tabular data like this, you won’t necessarily need the new mode. Then, you may safely stay with the old, one-column mode.
In addition to providing a page view & zoom-in mode, the Opera folks have come out with something unprecedented in the Windows Mobile world: smart text finding. Let me show you an example with an XDA-Developers thread:
In THIS screenshot, I’ve just started browsing and, therefore, the selection frame is in the upper left corner. Now, let’s press the Down key several times (or, even better, 8 for much quicker navigation downwards). As soon as I’ve reached the body of the text, the selection was automatically (!) scrolled to the right so that no screen estate remains unused on the left side of the screen as can be seen in HERE. Pretty smart, eh?
Now, let’s press Action to read it. As can indeed be seen, the text is very intelligently flowed in a way that no horizontal scrolling is necessary. It’s also really-really superior to how most other browsers handle non-one column modes. Thumbs up Opera, you’re indeed the BEST Web browser developers out there – and this is stated by somebody that knows a LOT about Web technologies and protocols!
1.3.2 Shortcuts
Opera Mini is pretty much similar to Opera Mobile in that it makes extensive use of the phonepad (dialpad) common on all SP models (and, as has already been stated, also available on some PPC models). Unfortunately, the default hotkeys are different, which you, if you often switch between the two browsers, will find pretty inconvenient. (But, then, just edit \Application Data\ Opera\ input.ini to make it similar to the Opera Mini shortcuts. See my other, Opera Mobile-related articles on how this can be accomplished.)
Please see section 1.5 (Shortcuts) to see what shortcuts the two browsers (and, in addition, IEM) offers. They REALLY make browsing MUCH faster – it’s really worth using the dialpad to access them.
1.3.3 Bugs, annoyances in Opera Mini 4.0 beta
The new, 4.0 series being in beta state, it has some, in most cases (if you DO use a compatible Midlet environment), non fatal bugs / annoyances not present in previous versions:
Big minimal font size (as opposed to the current 3.1.* version) and (comparatively) huge gaps between rows. A lot of people have complianed about this; in my opinion, this doesn’t hamper the usability of the client.
Cookies are not necessarily kept (as opposed to the current 3.1.* version – you may end up having to logging into your account much more frequently than with the 3.x series)
You may encounter crashes on Pocket PC’s and on Smartphones running other Midlet managers than that of Esmertec. On my Vox, using the factory-shipped Esmertec midlet environment, I haven’t encountered ANY crash over the last month of active (!) usage. See for example THIS XDA-Dev thread on PPC users’ reporting shutdowns / crashes. Most (if not all) of these users use the Intent midlet manager (which, again, is also the default midlet manager on many Smartphones.)
Let me, again, emphasize that while on my brand new WM6 HTC Vox (s710), using the Esmertec Jeodek 20070115.1.1 midlet environment, I have never encountered any Opera Mini 4.0 beta crash (while having been using it at least 2-3 hours a day!), other midlet environments may behave differently. For example, the Intent midlet manager common on most WM5 Smartphones AND Pocket PC's is known to frequently crash on OpMini4 users - it did once on me too when I (quickly) tested OpMini 4 on my HTC Universal (the latter running the 10/1/7/554 / 20060502 version of the Intent manager.) Should you encounter crashes like this, consider switching to either the IBM J9 midlet manager (according to holg HERE, it works just great with Opera Mini 4) or look around in the XDA-Developers forums for help in getting the, again, stable and reliable Esmertec Midlet manager. (I don't know whether it's separately sold; I seriously doubt it.)
The full page layout takes a LOT of memory. If you stay with the one-column mode, unless you load HUGE pages (say, hundreds of kilobytes originally), you, in general, will be able to make use of all the 30 page slots without having to reload any of these pages. If you, on the other hand, switch to the original page (as opposed to the one-column one) layout view, this will be reduced to two or three concurrent pages at most, regardless of the size of the original pages. If you often switch back to already loaded, just-browsed pages and don’t want to reload them because of the time / bandwidth requirements, you will want to stick to the traditional, one-column mode.
Note that the two versions can easily co-exist with each other. That is, if the first three problems become annoying, you can just switch back to the old versions. Unfortunately, as the favorite lists aren’t shared between the two versions, favorites that you add / edit in one version won’t be visible in the other.
1.3.4 Other (non-4.x-specific) problems
There’re still some problems with Opera Mini that may be a showstopper for you.
It’s still unable to render ANY kind of italic text (see for example THIS for a more thorough elaboration and my demos showing displaying italic text is indeed possible on Smartphones, regardless of the midlet manager in use). This is a MAJOR pain the back. I’ve already contacted the Opera folks on this matter; hope they fix this problem.
Binary download support-wise (as it’s using the IEM engine to do the “dirty” stuff; that is, to download files off the Web), it’s suffering from exactly the same problems as IEM:
CAB files with text MIME type are just rendered as text (like THIS); bigger ones (like THIS 1.5M CAB file) result in an out of memory error
non-CAB files with (correct) binary MIME type (like THIS PDF file) are correctly passed to IEM. Unfortunately, as the execution is fully supervised by IEM, you won’t be able to download any of these files because of the well-known problem already outlined in the IEM section.
Finally, CAB files with the binary MIME type (like THIS) are both correctly recognized by OpMini and, then, correctly downloaded by IEM.
And, of course, the other minor annoyances / restrictions (no file upload, no any kind of access to the IEM / Opera Mobile favorites, no URL copying etc.) – you can see them all in the original Web Browser Bible.
1.3.5 Verdict
Currently, while Opera Mini 4 is at beta stage (as is also emphasized in the documents), it’s already highly recommended if you have a SP model.
1.3.6 More information
Opera Mini 4.0 wishlist thread
Opera Mini forum
1.4 jB5
(another screenshot, now with an image)
Now, this is a really promising browser! While decidedly slower than even IEM and lacks highly useful features like FastBack (upon pressing Back, rendering the page from the local memory cache and NOT downloading it again, unlike both jB5 and NetFront) and does NOT offer multiple document capabilities (unlike the two Operas), it’s (as of the current, tested version, 5.0.56) already pretty powerful (for example, it's the only Smartphone Web browser to offer in-page text search: see it in action: 1 2 3) - much more usable than, say, the next-to-useless Minimo. What is more, it's free.
As it's in beta stage and will surely receive an ever better version, I do not thoroughly review and compare its features / standards compliance to the alternatives because the info would be outdated VERY soon. I will, however, definitely review it as soon as it gets into final (or Release Candidate). Make sure you check it out and get your free copy - if you can put up with the somewhat slower page loading / scrolling speed and the lack of multi-tabs / FastBack, you may like it very much.
1.5 Additional technologies
In this section, I elaborate on the Toonel, Java applet and Flash support on Smartphones. Again and again, CHECK out the original Windows Mobile Web Browsing Bible for more info on them. In here, I only give you strictly Smartphone-related information, not generic one you might want to also know.
1.5.1 Flash
Unfortunately, unlike on the desktop, where there is a more or less solid and compatible (albeit pretty slow) official Flash implementation from Adobe (ex-Macromedia; from now on, I only refer to it as “Adobe”) itself (and the alternative, albeit a bit worse and much more CPU-hungry player integrated into NetFront), Smartphone users have always been left in the cold. Much as Adobe has been addressed several petitions (see for example THIS one at MoDaCo), the Smartphone still haven’t received a real Flash player.
There is some light on the horizon, though. Adobe is working on Flash Lite (current version: 2.1), which is already accessible HERE. (If you don’t have an account, make sure you check in “No, I will create one now” as the bottom so that you can register. Registering can be done quickly; only after that will you be able to access the downloads. Note that, should you not want unwanted Adobe mails, you don’t need to check in any of the “I’m a developer / content creator” radio buttons – you can safely set all of them to “No” instead of the default “Yes” – you’ll still be provided access for the download).
Both IEM and Opera Mobile supports this plug-in (see screenshots below). Note that it doesn’t run MOST currently available Flash animations. For example, most games out there won’t run (unlike under the Pocket PC version). Some examples of them are Bomberman and Play with fire (this is what you’ll be shown: 1 2; IEM screenshot).
Incidentally, I’ve tried to „hack“ Flash Lite (overwriting \Program Files\Adobe\ flashlite.dll with the original, “full” \Windows\ Macromedia\ flash.dll). However, the checking for being a genuine Flash Lite animation is done in another DLL (daxplayer.dll); therefore, this hack doesn’t work.
1.5.2 Toonel
Toonel, the transparent compressor proxy, is a GREAT way to save data usage costs. If you don’t have an unlimited data plan, you really should check it out by, first, reading my related article & tutorial HERE. I’ve published several articles and tips on Toonel; the just-linked one is the one to start with.
While, it seems, it’s not possible to make the native Windows Mobile version work, the Java versions does work on Smartphones.
As far as the native Windows Mobile version is concerned, according to the folks HERE (thanks for the link to the Toonel folks; it's Russian - Babel "translation" HERE), some people managed to make the native (.NET CF) version of Toonel run. I haven’t succeeded in this on either of my Oxygen or Vox.
Fortunately, the Java version works. In general, you’ll only need the (brand new) CrEme 4.12 (download the TI OMAP version of the 4.1 series if you have a TI OMAP-based Smartphone) and THIS JAR file (version 0.45 - do NOT use version 0.50!). Install CrEme (you can do this on the storage card too – then, however, you’ll need to modify the link file I give you), copy the JAR file to the root directory of your handheld (you can, actually, copy it anywhere – but, then, you’ll need to modify the link file I will give you soon) and, then, copy THIS link file to \Windows\Start Menu. Then, just click the latter to start Toonel in the background. Upon start, you should see THIS screen. If you see THIS (note the bind() failed message!), it shows Toonel is already running.
Note that the CrEme process takes quite a lot of memory (but, fortunately, little CPU time – about 1-2% - when inactive) as can be seen in HERE. Beware of this fact – the operating system may kill the CrEme (Toonel) process in the background, particularly if you start other, memory-intensive programs. Then, you will just need to restart the proxy by clicking the startup script.
As, currently, the SP version of Opera Mobile (as with old 8.60 Pocket PC builds) doesn’t have internal support for entering proxy servers, you must enter the proxy information in the config file by hand. However, as with the old PPC betas, you can easily configure the proxy server by just editing \Application Data\ Opera\ opera.ini and adding the following section:
[Proxy]
Use HTTP=1
HTTP server=127.0.0.1:8080
Enable HTTP 1.1 for proxy=1
A screenshot of the Web admin interface of the locally running Toonel on my Vox:
As can clearly be seen, there was about 80% (fourfold!) bandwidth usage saving during the active session. This alone makes Toonel really worthy if yours is not an unlimited data plan.
A quick visit to WhatIsMyIP also shows it’s through the Toonel server that you’re connected (85.25.148.242 is one of the IP’s of the Toonel servers).
It’s VERY important to remember that, currently (as of 07/10/2007), the SP version of Opera Mobile does NOT reliably support proxy servers. Therefore, if you absolutely must use Toonel (or ANY external proxy server), you MUST use IEM and forget Opera Mobile.
As IEM, as with the PPC version, also depends on the operating-system level proxy settings (unlike other browsers), you must also configure the system to access the Net differently than before. That is, do the following:
in IEM, go to Menu / 9 Tools / 3 Options / Connections, untick “Automatically detect settings” and select “Work” in the list as can be seen in HERE
in the system-level Settings, go to 6 Connections / 6 Proxy, press Action on New and create a new record as can be seen in THIS screenshot (as can be seen in HERE, just leave “Type” on “HTTP”). You can name the proxy setting anything; in here, I’ve called it ‘t’. That is, all you need to do is setting “The Internet” to “Connects from”, “Work” to “Connects to” and entering “127.0.0.1:8080” in “Proxy (nameort)”.
Note that, after this, you will need to configure your other programs also using the system-level settings to use Toonel instead of a direct connection. Unfortunately, I haven’t managed to configure the built-in Messaging to use the built-in POP3 proxy support of Toonel (as opposed to the Pocket PC Messaging). Also, remember that, should you have the built-in Live (or MSN) Messenger, defining the proxy will also render them useless.
Unfortunately, it seems it’s not possible to make these programs work with a proxy defined in the above way. That is, you will need to delete the proxy every time you want to access your mail. It seems there are no other ways of disabling it - for example, setting the source / target networks to something else doesn’t work.
Again, keep in mind that you can have Toonel activated for IEM (that is, using a system-level proxy setting) AND still access your mail (both compressed, via Toonel, and uncompressed) via other, Smartphone-compliant mailer clients; for example, FlexMail. With the latter, you can safely use the compression offered by Toonel too and the mails downloaded just OK.
1.5.3 Java applets
While the IEM plug-in of the just-released CrEme 4.12 (the only Java Virtual Machine to be compatible with the Smartphone AND have an applet plug-in) can be registered, it doesn’t seem to be working, unlike on the Pocket PC.
Neither the applet-based Radar Weather test nor the local demo applet (Cube) shipped with the system work: the JVM plug-in just keeps showing "loading applet". Example screenshots: 1 2 (Vox); 3 (Oxygen).
1.6 Keyboard shortcuts
I’ve compiled a chart of the three SP Web browsers showing how a given functionality can be accessed. As can be seen, in general, Opera Mini requires the least button presses to do something (assuming IEM and Opera Mobile run in full-screen mode, which also means double initial softkey presses instead of just a single one to access something in menus only – that is, not having a direct dialpad shortcut).
Keep in mind that, if you extensively use the dialpad (for example, to directly enter the number of the menu item you’d like to activate – these numbers are shown in all menus and I also reproduce them here), you can navigate MUCH faster than using the D-pad to scroll up/down a menu.
You can find the chart here - make sure you check it out, you’ll find it REALLY useful!
2. Non-working or not recommended browsers
2.1 Thunderhawk 2.0
Unfortunately, this browser wasn’t updated for WM5. This means neither the SP2003 (1 2) nor the SP2002 version (these are the two versions available for download) can be installed on WM5/WM6 SP models. All in all, forget about it for the time being.
2.2 NetFront 3.4 Technical Preview 007
No MS Smartphone (WM6 Standard)-compliance: while the CAB installer can be installed on a WM5+ Smartphone, the main GUI isn’t displayed when you start the browser. (tested on the HTC Vox/s710 in both orientations).
2.3 Webby
Unfortunately, it doesn’t run either. While it can be installed, it refuses to run (1 2 3).
2.4 Minimo 0.2
(the latter is a 176*220 screenshot; as can be seen, only the last, Menu (…) icon is invisible; however, transferring the focus to it will also work. Too bad it turned out to be pretty unreliable on my WM5 AKU3 s310 (Oxygen)– even more so than on my QVGA Vox. For example, it didn’t even finish loading the SPT homepage as can be seen in the above screenshot.)
While it can be installed on SP’s, on this platform it’s far from perfect and, in general, useless, for the following reasons:
it has HUGE memory usage (the biggest problem with the 0.2 version on the Pocket PC platform too). After loading, it consumes about 12Mbytes and, when you load additional pages, this decreases even more, leaving little (if any) RAM memory
accessing the icons (to, for example, bring up the address bar) at the bottom can only be done using the right softkey. This, on the other hand, first, iterates through ALL the links in the page (yes, ALL of them), and only after this moves down to the bottom icons. A mouse emulator like SPHelper doesn’t help (to directly click the icons at the bottom) – Minimo just doesn’t sense the mouse clicks (that is, left softkey presses)
the browser often crashes (mostly if you run out of memory) and is generally slowish
All in all, I don’t recommend it. Also see for example THIS and THIS for more info / user opinions.
Note that the other available version, Minimo 0.16, isn’t installable on Smartphones at all.
UPDATE (later the same day):
in THIS thread, MoDaCo forum member holg posted something definitely worth reading - it, for example, explains how you can directly start Opera Mini from the alternative, by me, often-discussed midlet runner environment, the IBM J9. It also shows how external proxies can be used with this environment.
SPT frontpage
UPDATE (07/11/2007): Article heavily updated: added the two IEM Registry hack sections; added the jB5 section.
The following is the brand new section I've just added to the original article. Sorry for not reposting the entire article again - I hate slicing it into pieces so that they become under 10k in size.
1.5.1.1 Hacking REAL Flash on Smartphones
I’ve tried to "hack" Flash Lite (overwriting \Program Files\Adobe\ flashlite.dll with the original, “full” \Windows\ Macromedia\ flash.dll). However, the checking for being a genuine Flash Lite animation is done in another DLL (daxplayer.dll); therefore, this hack doesn’t work.
Fortunately, other hackers had better luck. XDA-Developers forum member jockyw2001 has managed to hack the REAL Flash player onto the SP.
(IEM playing back a YouTube video in One Column mode on the HTC Vox)
(other screenshots: Opera Mobile on the Vox doing the same in Desktop mode with 50% zoom, with the SPHelper cursor for controlling the on-screen controls; the same on my 176*220 Oxygen, with 25% zoom)
His thread is HERE (you will NOT need to read it to complete the steps below!) Note that you MUST apply the hacks on an application unlocked phone - it won't work on locked phones. Fortunately, it's pretty easy to unlock your phone (see for example THIS article for some links). Also note that the hack worked just great on both my WM6 QVGA HTC Vox (s710) and WM5 AKU3 176*220 HTC Oxygen (s310). Some people, however, reported problems with other models (see the above-linked thread). I'm pretty sure it's because they have messed up something that the plug-in doesn't work on their devices.
First, get THIS file (it's a slighlty rearranged version of jockyw2001's original. For example, I've collected the registry import files into one file and separated the files into directories named after the steps you need to do). UnRAR it with, say, WinRAR. Now, do the following:
If you've already installed Resco File Explorer (along with its registry plug-in) and at least once started the latter, copy All.reg from Step 1 - Registry import to anywhere on your SP and click it from File Explorer. It will be imported into the Registry.
Go to the root directory of your SP and to the Step 2 - Windows directory copy directory on your desktop computer. Copy the Windows directory on your SP.
Go to the Step 3 - flash6 directory on your desktop and the \Windows\Macromedia directory on your SP. Overwrite flash.dll on your SP with the one on your desktop.
Go to Step 4 - regserv and copy regsvrce.exe anywhere on your SP. From inside File Explorer (on your SP), execute it to register Flash. To do this, enter \Windows\Macromedia\flash.dll in the Full pathname... text input field (176*220 screenshot). (To make this easier (to avoid entering the path on the phonepad / keyboard of your phone), I recommend for example Pocket Controller on the desktop. If you can’t use Ctrl-V to paste to there (the case with the version 5.06 + HTC Vox combo, but NOT with the Oxygen), use ViTO’s excellent CopyPaste on the Smartphone to copy the contents of the clipboard to the input field.)
Then, just press OK and “Yes” in the confirmation dialog. After some 2-3 seconds, you’ll hear another bell. Now, start regsvrc.exe again; you’ll immediately see a confirmation (success) dialog (176*220 screenshot).
On the desktop, go to Step 5 - Flash7 and copy flash.dll to \Windows\Macromedia on your SP in order to overwrite the in step 3 copied Flash 6 version with the new, Flash 7 one.
Now you can start enjoying REAL Flash content!
The plug-in works great (additional screenshot); you’ll need a cursor emulator like SPHelper to click labels / buttons like in THIS screenshot.
Note that both IEM and Opera Mobile are able to make use of the plug-in. The two programs have somewhat different strengths and weaknesses.
First, IEM can't make use the up/down arrow keys; that is, if you would like to, say, play a game depending on these two directions, they will be unplayable. In these cases, you MUST use Opera Mobile. Second, as far as playing back YouTube videos is concerned, while IEM (unlike on the Pocket PC – it’s pretty strange the SP version of IEM is better in this respect) you will want to prefer Opera Mobile because it’s slightly faster at playback. You will still want to overclock your phone - if it’s a TI OMAP-based one, with OMAPClock.
Under Opera Mobile (as opposed to IEM), in the default mode, the flash plug-in size will be really tiny as can be seen in HERE. (Therefore, you’ll want to switch to Desktop mode and use a Zoom level of, on QVGA machines, in general, 50%, and, on 176*220 models, 25%) Unfortunately, you will still have problems with scrolling down / right – in the default, link scrolling mode, you will only see the top left part of the page and won’t be able to scroll anywhere (not even clicking the scrollbars with SPHelper). To fix this (and to scroll down to the Flash animation), you MUST switch to Image (scrolling) mode. With Opera Mobile, the up/down arrows do work, unlike with IEM, as can also be seen in THIS screenshot (otherwise, I couldn’t have been able to go down).
UPDATE (07/18/2007): Upon popular demand, I've added a section on installing the Flash hack on a storage card.
Again, it's available at http://www.pocketpcmag.com/blogs/index.php?blog=3&p=2084&more=1&c=1&tb=1&pb=1
1.1.3 MultiIE
The well-known Pocket PC IEM enhancer, MultiIE, is also compatible with (WM5+ only; sorry, no pre-WM5 compliance) MS Smartphones. The standard WM5 installer works on both Pocket PC’s and Smartphones. Let’s see how it compares to the Pocket PC version!
Unfortunately, it’s far inferior, feature-wise, to the Pocket PC version. Basically, you can only expect it to add multi-tab functionality.
1.1.3.1 Differences between the Pocket PC and the Smartphone version
1.1.3.1.1 Goodies missing - a generic overview
It’s fully impossible to save images in the SP version. The same stands for the excellent, additional features offered by, for example, address bar macros. They are ALL missing from the SP version, which is, more or less, only lets for multi tabs, softkey-based D-pad scroll mode and full screen switching, HTML saving and source viewing and keeping backlight on.
There are a LOT of features just not accessible in the SP version. In addition to basic functionality like the already-mentioned ability to open a link in another tab, the lack of saving images or saving full Web pages (as opposed to only saving plain HTML files without in-line images and, preferably, CSS/JS files), a whole set of other features are also missing: for example, address bar macroing, the excellent location-based services offered by the PPC version, the ability to quickly reformat a Web page through online Web compression / reformatting services like Skweezer etc. Fortunately, at least “Keep Backlight On” works.
1.1.3.1.2 Setting dialogs
Unfortunately, a lot of menu options accessible on the PPC are just not accessible in the SP version. For example, assigning shortcut buttons to MultiIE functions (PPC screenshots: 1 2) isn’t even offered by the SP version. On the Screen tab, it’s not possible to switch off the, on the Smartphone, useless (because you can’t tap them on a touchscreen-less device) corner icons (PPC SP).
1.1.3.1.3 Impossible to open a link in a new tab
While it’s available in the SP version of Opera Mobile (where you just traverse the focus to the link you’d like to open but, instead of pressing Action, press the right softkey and select “1 Open in new window”), it’s not possible to dynamically set where (in what tab) a new link should be opened to. This, of course, is also possible in the PPC version of MultiIE as can be seen in HERE.
You can surely try to redefine the default functionality in the Open link: Tap default action to, say, Open in new back window as can be seen in HERE, but it won’t work at all (and won’t stick). This means you can NOT open links in another tab in any way without opening a new tab in Menu / 9 MultiIE / 3 Open New Window and, in there, select the link you want to display in this tab.
1.1.3.2 Compared to Opera Mobile…
The inability to open a link in a new window, as has already been pointed out, is a big problem with MultiIE – as opposed to OpMob.
Switching between open tabs also requires significantly more button presses than in Opera Mobile. In the latter, you only need to press ‘2’ once to bring up the list of open tabs, where, after selecting the right one to switch to, you only need to press Action once. In MultiIE, you need to press Menu / 9 MultiIE and, if there are not more than 3 open tabs (in Portrait mode on QVGA devices; on 176*220 ones, even two open tabs will result in the same), select the tab at the top. If there’re more tabs open (QVGA screenshot with 4 tabs) or, you’re in Landscape, there will be another level of redirection (1 Windows), making it necessary to issue another keypress.
There is, however, something MultiIE is better at: saving web pages do work. Unfortunately, you can’t fine tune what should be saved – unlike in the PPC version, where not only the page HTML itself, but also all the related resources (by selecting a full save instead of the HTML-only).
1.1.3.3 Other bugs & problems
In addition to the already-mentioned ones (for example, the Open link: Tap default action settings’s not being sticky) it has several other bugs. For example, it sometimes hides the tabs (1 2) on QVGA devices (but not on 176*220 ones). This might particularly be a case with pages using frames, after maximizing one of these frames using Expand Frame (left softkey); for example, the MultiIE page itself.
The menus may be a bit messed up (but still usable) on QVGA devices because of the too large fonts. On low-res 176*220 ones, they’re OK (screenshots: 176*220: 1 2 3; QVGA: 1 2)
While the tabs can be re-displayed after a screen rotation (if the particular device supports rotating the screen – for example, the Vox does), rotating back to the original rotation will result in not using the entire screen estate. This won’t be an issue if you NEVER rotate the screen but stay in either Portrait or Landscape all the time.
As far as the options dialog screens are concerned, the “Plugin” dialog is also different: first, as it is lacking a scrollbar, you don’t see anything under Presets / Shown on open more menu on both 176*220 and QVGA Portrait phones. On QVGA Landscape ones, however, the scrollbar is displayed and you can scroll down, revealing the lowermost GUI widgets. Not that it’d be of any use: NONE of the features work in here. That is, you can’t even set the User-Agent to be used to “disguise” your browser as a full desktop Windows browser. This is also a very bad disadvantage, compared to how it behaves on the Pocket PC.
Still in this dialog, the address bar search configuration (PPC screenshots: 1 2) don’t work either: an “Option not available in alpha” is displayed.
1.1.3.4 Tips & tricks
By default, to view the source of a Web page, it tries to use \Windows\notes.exe, which doesn’t exist on any MS Smartphones.
Unfortunately (if you have a phone with a built-in keyboard – non-QWERTY phones don’t have this program!), if you redefine this link to \Windows\TextNotes.exe as can be seen in HERE, Menu / 9 MultiIE / 6(+) Page Tools / 3 View Source will not work either.
Therefore, if you have a Windows Mobile 6 Standard phone (which come with Office Mobile built-in), you’ll want to prefer Word Mobile (\Windows\pword.exe) to view the sources. To make this word, configure MultiIE to use it as the default viewer. With that, watching sources will work just fine:
1.1.3.5 Verdict
All in all, don’t expect much of the current version of MultiIE for Smartphone. It’s WAY worse, WAY harder to use and definitely more buggy than the Pocket PC version. The Smartphone version of Opera Mobile is far better thought-out (support for dialpad buttons; menu-based link / image context menu support etc., making it far easier to, for example, open a link in a new tab instead of the current one; far faster to switch tabs; allows for saving images etc.). If you, however, absolutely need to stick to IEM and do need a multitab solution for it with some goodies (for example, Opera Mobile still doesn’t support saving pages; MultiIE does; the same stands for quickly swapping between the three scrolling modes, should you want to exclusively use the D-pad for scrolling and leave the 2/8 phone buttons alone), currently, MultiIE is the only way to go.
UPDATE: Just added a new section on MultiIE in the IEM-related chapter. Worth a read!
UPDATE (10/20/2007): I've published a review of Opera Mobile 8.65 Final (PPC/SP), Picsel 1.0.5 (PPC/SP) and the brand new Spb Pocket Plus 4.0 (PPC). A new version of jb5 (PPC/SP) has been released and a brand new, albeit very simple IEM add-in Web Viewer for WM5 (PPC). Also, I’ve linked in some of my recent reviews of some new (not very important) Web browsers: TeaShark (PPC/SP) and UCWEB (PPC/SP). Finally, I've published some genuine, never-before-published tips and tricks on utilizing the Pocket PC hardware application buttons to control Opera Mini and Opera Mobile. It's a MUST for any serious Pocket PC user - you'll LOVE my new tips & tricks. See THIS. Cross-posted to: PPCT, AximSite, XDA-Developers - 1, XDA-Developers - 2, FirstLoox, BrightHand, HowardForums, SPT, MoDaCo.
UPDATE (11/12/2007): the final version of Opera Mini 4 has been released. I've written a VERY thorough tutorial on installing and using it; it's available HERE; cross-posted to PPCT, AximSite, XDA-Developers -1, XDA-Developers -2, FirstLoox, BrightHand, HowardForums - 1, HowardForums - 2, SPT, MoDaCo, official Opera Mini forum. Note that it also links in my brand new MIDlet Bible, which will be a god-send anyone wanting to run this EXCELLENT browser on his or her handset.
Menneisyys said:
Step 1 - Registry import to anywhere on your SP and click it from File Explorer. It will be imported into the Registry.
[*]Go to the root directory of your SP and to the Step 2 - Windows directory copy directory on your desktop computer. Copy the Windows directory on your SP.
Click to expand...
Click to collapse
REF: STEP2...
When I try to copy my WINDOWS folder from SP to Desktop, I get error: "Cannot copy index: There has been a sharing violation. The source or destination file may be in use." This error is while copying from "Content IE5" I feel I didn't understand that instruction correctly. There are 1136 objects in Windows folder on route.
Thanks in advance for any help you can provide.
markanthonypr said:
REF: STEP2...
When I try to copy my WINDOWS folder from SP to Desktop, I get error: "Cannot copy index: There has been a sharing violation. The source or destination file may be in use." This error is while copying from "Content IE5" I feel I didn't understand that instruction correctly. There are 1136 objects in Windows folder on route.
Thanks in advance for any help you can provide.
Click to expand...
Click to collapse
Why do you want to copy from there? To copy the local cache?
Menneisyys said:
Why do you want to copy from there? To copy the local cache?
Click to expand...
Click to collapse
Hello Menneisyys, Thank you for your reply. I made reference to Step#2 of your post#9 on this thread in regards to installing/hacking Real Flash in order to view YouTube videos. While it is true that YouTube now has a mobile version, I still can't see the videos with their mobile version. Its why I was trying to follow your instructions to install Real Flash.
markanthonypr said:
Hello Menneisyys, Thank you for your reply. I made reference to Step#2 of your post#9 on this thread in regards to installing/hacking Real Flash in order to view YouTube videos. While it is true that YouTube now has a mobile version, I still can't see the videos with their mobile version. Its why I was trying to follow your instructions to install Real Flash.
Click to expand...
Click to collapse
OIC.
"Go to the root directory of your SP and to the Step 2 - Windows directory copy directory on your desktop computer. Copy the Windows directory on your SP."
This means you need to copy from the desktop to the phone, not vica versa.
(sorry for the misunderstanding - 1. my mother tongue isn't English 2. given that I write a *lot* (much more than anyone else) of Bibles /articles on Windows Mobile, I have very little time to actually double-check my articles before submitting them)
ERROR!
Menneisyys said:
The following is the brand new section I've just added to the original article. Sorry for not reposting the entire article again - I hate slicing it into pieces so that they become under 10k in size.
1.5.1.1 Hacking REAL Flash on Smartphones
I’ve tried to "hack" Flash Lite (overwriting \Program Files\Adobe\ flashlite.dll with the original, “full” \Windows\ Macromedia\ flash.dll). However, the checking for being a genuine Flash Lite animation is done in another DLL (daxplayer.dll); therefore, this hack doesn’t work.
Fortunately, other hackers had better luck. XDA-Developers forum member jockyw2001 has managed to hack the REAL Flash player onto the SP.
(IEM playing back a YouTube video in One Column mode on the HTC Vox)
(other screenshots: Opera Mobile on the Vox doing the same in Desktop mode with 50% zoom, with the SPHelper cursor for controlling the on-screen controls; the same on my 176*220 Oxygen, with 25% zoom)
His thread is HERE (you will NOT need to read it to complete the steps below!) Note that you MUST apply the hacks on an application unlocked phone - it won't work on locked phones. Fortunately, it's pretty easy to unlock your phone (see for example THIS article for some links). Also note that the hack worked just great on both my WM6 QVGA HTC Vox (s710) and WM5 AKU3 176*220 HTC Oxygen (s310). Some people, however, reported problems with other models (see the above-linked thread). I'm pretty sure it's because they have messed up something that the plug-in doesn't work on their devices.
First, get THIS file (it's a slighlty rearranged version of jockyw2001's original. For example, I've collected the registry import files into one file and separated the files into directories named after the steps you need to do). UnRAR it with, say, WinRAR. Now, do the following:
If you've already installed Resco File Explorer (along with its registry plug-in) and at least once started the latter, copy All.reg from Step 1 - Registry import to anywhere on your SP and click it from File Explorer. It will be imported into the Registry.
Go to the root directory of your SP and to the Step 2 - Windows directory copy directory on your desktop computer. Copy the Windows directory on your SP.
Go to the Step 3 - flash6 directory on your desktop and the \Windows\Macromedia directory on your SP. Overwrite flash.dll on your SP with the one on your desktop.
Go to Step 4 - regserv and copy regsvrce.exe anywhere on your SP. From inside File Explorer (on your SP), execute it to register Flash. To do this, enter \Windows\Macromedia\flash.dll in the Full pathname... text input field (176*220 screenshot). (To make this easier (to avoid entering the path on the phonepad / keyboard of your phone), I recommend for example Pocket Controller on the desktop. If you can’t use Ctrl-V to paste to there (the case with the version 5.06 + HTC Vox combo, but NOT with the Oxygen), use ViTO’s excellent CopyPaste on the Smartphone to copy the contents of the clipboard to the input field.)
Then, just press OK and “Yes” in the confirmation dialog. After some 2-3 seconds, you’ll hear another bell. Now, start regsvrc.exe again; you’ll immediately see a confirmation (success) dialog (176*220 screenshot).
On the desktop, go to Step 5 - Flash7 and copy flash.dll to \Windows\Macromedia on your SP in order to overwrite the in step 3 copied Flash 6 version with the new, Flash 7 one.
Now you can start enjoying REAL Flash content!
The plug-in works great (additional screenshot); you’ll need a cursor emulator like SPHelper to click labels / buttons like in THIS screenshot.
Note that both IEM and Opera Mobile are able to make use of the plug-in. The two programs have somewhat different strengths and weaknesses.
First, IEM can't make use the up/down arrow keys; that is, if you would like to, say, play a game depending on these two directions, they will be unplayable. In these cases, you MUST use Opera Mobile. Second, as far as playing back YouTube videos is concerned, while IEM (unlike on the Pocket PC – it’s pretty strange the SP version of IEM is better in this respect) you will want to prefer Opera Mobile because it’s slightly faster at playback. You will still want to overclock your phone - if it’s a TI OMAP-based one, with OMAPClock.
Under Opera Mobile (as opposed to IEM), in the default mode, the flash plug-in size will be really tiny as can be seen in HERE. (Therefore, you’ll want to switch to Desktop mode and use a Zoom level of, on QVGA machines, in general, 50%, and, on 176*220 models, 25%) Unfortunately, you will still have problems with scrolling down / right – in the default, link scrolling mode, you will only see the top left part of the page and won’t be able to scroll anywhere (not even clicking the scrollbars with SPHelper). To fix this (and to scroll down to the Flash animation), you MUST switch to Image (scrolling) mode. With Opera Mobile, the up/down arrows do work, unlike with IEM, as can also be seen in THIS screenshot (otherwise, I couldn’t have been able to go down).
Click to expand...
Click to collapse
Hello, you either have JavaScript turned off or an old version of Adobe's Flash Player. Get the latest flash player.
...meaning NOT working.
Is this smartphone only?
Still no flash solution!

Opera Mini 4: A new star is born - the FREE(!) Web browser you MUST give a try to

Opera Mini has a short history (the project was started only slightly over two years ago), but, today, with the release of version 4, it has become one of the most useful, best browsers available for anything handheld.
In this review & tutorial, I provide you with a complete tutorial of installing and using this recently released browser and, in addition, I explain why you may want to prefer it to other Web browsers.
First, some screenshots taken on wildly different platforms / devices:
{
"lightbox_close": "Close",
"lightbox_next": "Next",
"lightbox_previous": "Previous",
"lightbox_error": "The requested content cannot be loaded. Please try again later.",
"lightbox_start_slideshow": "Start slideshow",
"lightbox_stop_slideshow": "Stop slideshow",
"lightbox_full_screen": "Full screen",
"lightbox_thumbnails": "Thumbnails",
"lightbox_download": "Download",
"lightbox_share": "Share",
"lightbox_zoom": "Zoom",
"lightbox_new_window": "New window",
"lightbox_toggle_sidebar": "Toggle sidebar"
}
(VGA Windows Mobile Pocket PC screenshot)
(QVGA Symbian S60v3 Nokia N95 screenshot)
(176*220 Windows Mobile Smartphone screenshot)
Note that note of the above screenshots use real full screen mode – hence the top and bottom bars. The last screenshot with enabled full screen mode can be seen in the following screenshot:
1.1 Why you will want to use it?
You’ll find it a god-send particularly when
you’re over a VERY slow (for example, GPRS) connection and want the fastest browsing solution, preferably with images
yours isn’t an unlimited data plan; that is, you pay big bucks for every Megabytes
you don’t want to pay for a third-party browser (they, in general, cost big bucks)
you’re a desktop Opera user (you should be – give it a try, you’ll love it, particularly if you have a notebook with a high-resolution (at least SXGA+) screen – Opera’s zoom-in features are way better than those of Internet Explorer and are only matched by Mozilla) and you want to synchronize your bookmarks with it as easily and automatically as possible
you look for an easy-to-use, non-separate, integrated RSS reader – that is, you need a Web browser that also notifies you when you surf to a page also having RSS feed
your mobile device is resource-constrained, while you’d like to keep tens of Web pages, preferably with images, open at the same time (without the need for reloading). This is where most (if not ALL) other browsers severely fail, even on high-end mobile devices packed with tens of Megabytes of free (!) RAM memory.
you want something like the minimap feature of the Nokia Web browser on newer Nokia devices, the NetFront 3.4 Technical Previews (which, being just previews, are severely restricted and lack Flash, more than 10 favorites and other goodies) on Windows Mobile or the iPhone Safari browser but usable on any platform (incl. any Windows Mobile device) – but even faster and having much less resource demands
you want something with hardware button / keypad support. Opera Mini supports them just great. If yours is a phone with the dialpad on the front of your phone, you’ll REALLY love these shortcuts because, then, you will rarely (if ever) need to use the softkeys (or, on touchscreen devices, the stylus) to navigate the menus. Using button shortcuts is WAY faster. As opposed to this, (on Windows Mobile) NetFront and Minimo doesn’t support buttons at all and (on Symbian) Nokia Web isn’t very good either. The MS Smartphone version of IEM is, shortcut button support-wise, is also definitely inferior to Opera Mini – it supports far fewer operations than Opera Mini.
In the following two sections, I compare it to the other browsers available for the two current, major mobile operating systems, Windows Mobile and Symbian. (Freely skip the one not pertaining to you.)
1.1.1 How does it compare to other Windows Mobile browsers?
While there’re quite a few Web browsers on Windows Mobile, only few of them are actually usable: the built-in Internet Explorer Mobile (preferably with a capable plug-in like PIEPlus, Spb Pocket Plus 4.x (but NOT older versions) or MultiIE), Opera Mobile and NetFront. These three browsers (and the other Web browsers and IEM plug-ins I, generally, don’t really recommend: Picsel, Thunderhawk, Minimo etc.) all have their strengths and weaknesses, on which I’ve thoroughly elaborated in my two (a separate one for Windows Mobile Pocket PC’s and Smartphones HERE and HERE, respectively) Web Browsing Bibles
1.1.2 How does it compare to other Symbian browsers?
On Symbian, there’re two other, really decent Web browsers.
Opera Mobile is available for all S60 v2 (!) and v3 devices and is pretty decent. For example, unlike its Windows Mobile counterpart, it supports in-page text searching (which is painfully missing from the WM version). It, however, doesn’t use a compression service, which means long downloading times over slow links and has pretty high memory requirements.
Nokia’s Web browser coming with all S60v3 FP1 models is also very decent: it supports in-page searching, Flash Lite, minimap view and a lot of other goodies. However, it’s decidedly slower than Opera Mini and if your phone is a Nokia N95-1 with 64M RAM only, you’ll inevitably run into the MAJOR problems caused by its taking a lot of memory.
While Opera Mini 4 allocates about 10 Mbytes of memory to itself (which is a big letdown on the N95-1), after the initial memory allocation, no more memory will be allocated and you can safely go on browsing.
1.1.3 When will you still need to stick to a traditional Web browser?
Unfortunately, there’re several areas Opera Mini doesn’t excel at. While, say, 95% of the time it works just wonderfully (no wonder I use it for most of my Web browsing on both Windows Mobile and Symbian phones) for just accessing the Web, in the remaining 5% you’ll need to “fall back” to other, traditional, non-Java-based browsers. You wi
if you need full JavaScript and/or AJAX support. Only a subset of these standards are supported (albeit still a LOT more than in Internet Explorer Mobile, Thunderhawk or Picsel!). See THIS for more info if interested.
These browsers will inevitably be invoked when you make Opera Mini download a file (this, however, doesn’t mean you will need to stick to using these browsers!)
As you can’t make Opera Mini the default system browser, links received in e-mails and HTML files in the local file system will still need to be browsed via these browsers – unless (if it’s a remote Web page, not a local, say, HTML file or file attachment) you paste the address of the page to the address bar of Opera Mini (OM for short).
If you need Java applet and/or Flash (Lite) support. It’s with very few pages that you do need them; for example, Handango’s Friday giveouts, requiring full Flash compliance, are one of them. And, for YouTube, you will want to use alternate methods to play, NOT direct, in-line playback. (If you do use the TCPMP plug-in under Windows Mobile, then, you will still need to use IEM.) That is, generally, it’s when you want to play some online Flash games (see THIS Flash Bible for more info if interested) that you will need to stick to a browser supporting Flash.
There are some other restrictions; for example, you absolutely MUST edit text longer than 4-5 kilobytes. Then, because of the MIDlet Manager (also abbreviated as KVM) restrictions, you’ll end up having to switch to a “real” browser – at least for the time of editing.
You need to save Web pages to the local file system and/or copy text out of them. Unfortunately, OM is completely unable to do this. Unfortunately, with current KVM’s, not even copying a URL (for example, that of the current page) to the clipboard is possible.
Again and again, speaking out of experience, a casual user will very rarely need to switch back to these browsers and, after finding out how easy Opera Mini is to use, how quick it is to load pages and operate and how wonderfully low system requirements it has, he or she will want to stick with Opera Mobile.
1.2 Installation
(Note that this section only contains WM5+ Windows Mobile Pocket PC screenshots showing the MIDlet manager Jbed. As I recommend Jbed the most and I do urge you to install Jbed on your phone too, I didn’t bother including screenshots / instructions on installing OM under other MIDlet managers. Similarly, I don’t give you Symbian screenshots either – installing and running OM is done in a very similar way as under WM.)
1.2.1 Installing a MIDlet Manager
If you have a Windows Mobile device with at least WM5 as the operating system (sorry, previous operating systems aren’t supported – not even WM2003SE, let alone even older OS’es) and it’s not the latest models (for example, the Kaiser / Mda Vario III / Tilt) of HTC, then, you will want to download the Jbed MIDlet Manager HERE. If you do this on your desktop computer, transfer the CAB file to your handset and click / activate it from File Explorer (or any other explorer tool like Total Commander). Just install it (it’ll be installed in the main memory) and you’re set – you can go on installing Opera Mini itself.
Jbed will run on ALL Pocket PC’s and Smartphones running at least WM5. If you have an earlier operating system, check out the “Platform compatibility” section (with three rows corresponding to non-phone-enabled Pocket PC’s, Pocket PC Phone Edition and MS Smartphones in turn) in the main MIDlet Bible chart for download links; then, you’ll want to use either TAO Intent or IBM J9. Of the two, I’d prefer the former, but that’s only me.
Note that you can ONLY use this MIDlet manager if and only if your locale is set to a language using Western characters: Spain, France, Finland, you got it. (This doesn’t only cover Western languages; for example, Estonian only uses letters already present in some other Western languages. That is, while Estonian is an East-European language / locale, it’ll still work.) If, on the other hand, you have a, say, Slavonic locale (for example, Slovak), Jbed will NOT work. If your locale is Russian, then, you will want to check out THIS file instead; linked from HERE. Note that the latter MIGHT work with other East-European locales; I haven’t tested this myself.
Also note that if you have a non-phone WM5+ Pocket PC (for example, a Dell Axim x50(v) (with the WM5 upgrade) /x51(v) etc.), you will also need to download THIS file and unZIP its contents to \Windows on your Pocket PC.
1.2.2 Installing Opera Mini itself
If you’d like to download the browser onto your desktop computer and, then, transfer it to your phone, go to THIS page and click the opera-mini-advanced.jar link (I don’t provide a direct link to the latter as it always changes, as newer and newer builds are released). A JAR file will be downloaded. Transfer it to your PDA via ActiveSync, a memory card, a wireless connection, the WinCE File System plug-in of Total Commander etc., fire up Pocket File Explorer on your phone and click it. It’ll initiate the install process.
If, on the other hand, you’d like to do this on your phone, enter the address http://mini.opera.com/ into any of your Web browser on your phone (screenshot HERE) , scroll down and click “Try the new Opera Mini 4” link. This will take you to the page http://mini.opera.com/?rel=4, where you only need to click “Download high memory version”. Then, the installation will start – just like with the offline process outlined in above.
It’s pretty easy to install Opera Mini. You’ll just need to answer OK, Yes and Continue. For example, when you’re presented THIS screen (asking you whether OM should be put in the root folder or any subfolder), THIS and THIS question to to launch it. During the process, you’ll see other dialogs; for example, THIS showing the compilation process.
Now that you’ve launched the app, keep answering OK / Yes / Accept as can be seen in THIS screen. On the next screen, you’ll (again) press OK (the “Yes, but ask me next session” will be selected by default; it’s perfectly OK with us). After this, answer Yes to the next question too and, then, activate Accept to accept the license agreement.
Upon the first execution, after you click a link (and, therefore, initiate a network connection) you’ll need to press at least one button several times until the progress bar is full. You can do this with any button if you have numeric buttons; do this with the D-pad (any directions) if you don’t.
1.3 Usage
After this, you’ll find using OM pretty straightforward by using the two WM5 softkeys (or the touch screen). I’m pretty sure you’ll find it easy to use.
Note that in the review of the previous beta3, I’ve already spent a LOT of time explaining how link synchronization and managing RSS feeds work. Please do refer to the article for a complete overview of both these techniques.
Users new to OM will surely notice that entering text is done differently than using regular Web browsers. Now, if you click (move the focus to and press the Action button on it) a text input field / area, you won’t be able to do an “in-line” edit, but you’ll be taken to a separate and, in most cases, full screen text editor. Jbed’s text editor is one of the best (for comparison: TAO Intent’s (a well-known, widely used KVM) editor has severe restrictions: it doesn’t support copy/paste operations), but keep in mind that it (as with ALL the other KVM’s on Windows Mobile and some KVM’s on Symbian) can’t edit texts larger than some 4 kilobytes.
Note that after exiting (Menu / Exit) or shutting down (with an external task manager tool or by resetting the device) OM, you will need to go to Start / Programs and select the Esmertec Jbed icon (highlighted HERE) and click (or, press Launch while it’s selected) “Opera Mini” inside. Note that if you’re a somewhat more advanced user, you can easily invoke OM4 without starting Esmertec Jbed first (that is, you save some screen taps / button presses) by following my remarks in the “Direct, system-level links (shortcuts) to MIDlets” row of the main chart of the MIDlet Bible.
Under newer Symbian versions, you need to basically do the same as above. The difference is that these newer Symbian versions (as opposed to, say, the MIDlet Manager on the S60v1 N-Gage) puts a direct link to OM into Applications (example screenshot HERE); that is, you don’t need to create these links yourself.
1.4 Changes since beta 3
In addition to some, mostly “dumbphone” (that is, not Symbian / Windows Mobile-related) bug fixes, there is some welcome news for touch screen users.
First, you may already have noticed how complicated it is to reorganize the favorites list on the mobile phone. You repeatedly need to select Manage / Move up (or, down) to move a given favorite up or down, which involves a lot of work (and there’re no sorting capabilities built-in). Of course, if you have access to a desktop Opera browser, you can quickly do this stuff by either quick sorting (Sort / View by … in the context menu) or mouse-based drag and drop.
Now, if you have a touchscreen-based device (for example, a Pocket PC), you can, with the stylus, just highlight a favorite (as you would do when using the traditional way of reorganizing them) and, then, keeping the stylus down, drag it to its new position (note that this will not be animated – that is, you’ll only see the favorite moving after you’re lifted up the stylus from the touchscreen).
In addition, there’s another goodie you might want to know: now, keeping down the stylus on a Web page results in the context menu to be shown. The context menu slightly varies on the markup you’ve invoked it on:
links have a "Link" submenu, allowing for opening the link either with or without images (and also getting its address) as can be seen in HERE
images have a “Open Image” shortcut, which, in addition to showing the image in a new window, also let for downloading and saving it
the page itself (no links / images) “only” have the mobile view switch, reloading and information shortcuts
This context menu is also accessible by pressing “1” on the keypad - or, of course, emulating the keypress on the on-screen software input panel or, finally, assigned to a hardware button. This all has been thoroughly explained in the MIDlet Button Bible – make sure you DO read it because it’ll REALLY ease your life and increase your productivity.
Note that this all has also been (shortly) mentioned HERE.
The home screen also has some new links; for example, the brand new "GameJump" taking you to some freely available Java MIDlet games directly downloadable to your phone. They aren't particularly good; that is, don't expect anything like Gameloft or I-Play-like (see the links to the best Java MIDlet game developers at the end of MIDlet Bible!). I've tested three of these games on my N95: Arcade Park 1 (compared to the native PPC version, REALLY weak), CS Garfield (pretty OK but there're much better, albeit commercial bowling titles for Windows Mobile) and Spin Blocks (not worth bothering on devices with QVGA or larger screen because it uses 176*220). All in all, there's no free lunch; however, you may still want to look around for some games.
1.5 Frequently asked questions / misconceptions
1.5.1 Proxy servers and Opera Mini 4
Some people state (see for example THIS and THIS) the final version of OM4 doesn’t work with proxy servers any more, unlike with earlier OM4 beta builds. I’ve thoroughly tested this and found out that they do work assuming you explicitly switch the network access mode from Socket to HTTP (Menu / Tools / Settings / Network protocol).
1.5.2 Lack of code signing and the consequences
As you may already have noticed, Opera Mini is unsigned. This, unfortunately, means (depending on the actual KVM used and the operator restrictions / customizations) nagging screens when trying to access the Net. With Windows Mobile, you can “hack” the most widely used KVM’s, including the highly recommended Jbed. With Symbian, where the situation can be worse - again, depending on what additional restrictions are added by your mobile operator. Of course, you can always de-brand your device as is explained at, say, HERE.
You may also want to read THIS post (in THIS, pretty instructive thread) on why OM4 isn’t signed by default. (In a nutshell: the high price of the Verisign root certificate would have forced the developers of OM to make their browser commercial.)
I hope someone will be able to come up with a signed version of OM4 that works on at least Windows Mobile (with Jbed at least) and / or Symbian phones.
1.6 Recommended links
Please DO read the articles linked above; most importantly, the MIDlet Bible. It explains a LOT you might not ever have thought of. You will find it REALLY useful. If you do want to use Opera Mini to its full potential, you MUST read it and all the related tutorials (for example, the one on button handling, which is of extreme importance with OM4).

(MY) MAJOR BREAKTHROUGH: now, you can use Opera Mini as the system-level Web browser!

You, hopefully, already know Opera Mini 4, which, currently, I recommend the most for all Windows Mobile users as the primary browser. It’s especially useful if you are on either a slow (say, GPRS) or expensive (non-flat rate) data plan and/or you also use Opera on the desktop and, therefore, can make use of the excellent, remote (!) favorite synchronization offered by Opera Link.
So far, it was impossible to quickly invoke Opera Mini from any mailer applications by just clicking / activating Web links in them. This was a major stumbling block for many, which is quite understandable. Yes, it’s a major pain in the back to having to rely on Internet Explorer (Opera Mobile, Netfront etc.) for displaying the given Web page - instead of the much faster / cheaper / prettier Opera Mini.
Of course, Pocket PC (using the new terminology, Windows Mobile 6 Professional / Classic) users have always had an escape route. They still could highlight the link and, then, copy it to the clipboard. After that, they could still invoke Opera Mini, go to Menu / Enter Address and paste the URL there. (Assuming, of course, they use a copy/paste-capable MIDlet Manager. The outdated and, unless you have specific needs or an old operating system, in no way recommended TAO isn’t one of them; the recommended Jbed is.) An example of highlighting a link and copying to the clipboard is depicted in the following screenshot:
{
"lightbox_close": "Close",
"lightbox_next": "Next",
"lightbox_previous": "Previous",
"lightbox_error": "The requested content cannot be loaded. Please try again later.",
"lightbox_start_slideshow": "Start slideshow",
"lightbox_stop_slideshow": "Stop slideshow",
"lightbox_full_screen": "Full screen",
"lightbox_thumbnails": "Thumbnails",
"lightbox_download": "Download",
"lightbox_share": "Share",
"lightbox_zoom": "Zoom",
"lightbox_new_window": "New window",
"lightbox_toggle_sidebar": "Toggle sidebar"
}
This, however, resulted in multiple screen taps and has never been so simple as just clicking a link in the mail body and let the system invoke the browser and pass the link to it.
And, of course, the above-explained way of copying URL’s to Opera Mini doesn’t work with touchscreen-less MS Smartphone (in the new terminology, Windows Mobile 6 Standard) models. Not even with external Copy/Paste tools like VITO’s excellent, free CopyPaste.
Because of the acuteness of the problem, I’ve thought very hard on solving the problem and making Opera Mini (OM for short) a browser that doesn’t suffer from this problem. And, during a lengthy swimming & sauna session, it occurred to me how it can be solved. Yeah, it’s mostly during swimming that I get the best, most revolutionary ideas
First, the pros and the cons so that you can see what you can expect of my solution.
Pros
Fully Seamless integration into Messaging (or any other mailer app), Notes, Word Mobile, PDF readers, MobiPocket (or any other text processing / viewing app) etc under ALL Windows Mobile / Pocket PC operating systems before Windows Mobile 6, on both the Pocket PC and Smartphone platforms
While it’s not compatible with WM6 Smartphones (WM6 Standard devices), on WM6 Pocket PC’s, you can still pretty easily invoke OM and pass the given URL to it.
It’s free and pretty easy to set up
Cons
It isn’t compatible with WM6 Smartphones like the HTC Vox (s710) or the HTC Wings (s730). Sorry.
With WM6 Pocket PC’s (unlike previous OS version), some additional manual work is needed, compared to the pre-WM6 cases. That is, just clicking the link won’t suffice.
It will NOT work on local HTM(L) files on your device – that is, not external links. That is, you won’t be able to render a local HTML file if you click it from File Explorer. However, as it’s mostly remote links that you’ll want to view, not local files, this isn’t that big a problem.
Again, let’s emphasize it again:
with WM6 PPC’s (unlike with pre-WM6 ones), you must copy the URL to the clipboard and only after this click the link!
It does NOT work with touchscreen-less WM6 Smartphones (WM6 Standard devices)! That’s because of the operating system’s inability for any kind of copy/paste operation.
Installation, usage
download and install MortScript if you haven’t already done so. Make sure you install it in the main memory (unless you’re ready to modify the scripts I’ve provided).
download THIS file
depending on your operating system version, go to either the WM5 or WM6 directory of the ZIP file downloaded in the previous step. Note that if you’re still using a pre-WM5 operating system, you’ll need the WM5 version.
transfer OMInvokeAndPasteScript.mscr to \Program Files\MortScript on your device
import the registry file into the Registry (WM5: OMInvokeAndPaste.reg; WM6: OMWM6DefBrowser.reg). if you do this on a MS Smartphone, make sure it is application unlocked. I’ve published several articles on (the absolutely legal) app unlock; see for example THIS
If you absolutely don’t know how the Registry import file needs to be imported, do either of the following:
either get (and, even better, purchase - they DO deserve it as it’s a REALLY excellent app) SOTI’s Pocket Controller. Install it, connect to your device, click the Registry icon. Then, select Edit / Import in the new remote Registry Editor window. Search for the registry file and import it.
or, get Resco Explorer. Install it on your mobile device; make sure you don’t disable the Registry editor install. Start the latter and, then, just exit it – this makes sure .REG files become associated with the Registry editor. Now, after you’ve transferred the REG file to your handset, just click it from inside File Explorer. Voila: it gets imported into the local Registry.
That’s all – from now on, clicking links in mails, documents etc. should fire up OM and pass the URL.
How you can (and when you must) modify OMInvokeAndPasteScript.mscr ?
The majority of the application logic is, in both the WM5 and WM6 versions, in OMInvokeAndPasteScript.mscr. Therefore, you’ll need to modify it in the following cases:
first, the most important instruction you’ll need to modify is the second row Run("\Windows\jbed.exe", "-run sX_"), where X is either 0 or 1 (I’ve set it to 0 in the WM5 and to 1 in the WM6 script).
As is explained in my earlier Opera Mini & Jbed-tutorial and posts (see for example THIS) , along with other people (see for example THIS), X stands for as how manieth OM was deployed under Jbed.
also note that, if you have to use a pre-WM5 operating system, it’s here that you need to define your TAO / IMB J9 links. Please consult the related section in the MIDlet Bible for more info on how these links need to be created.
Just remember the following: the Run() function requires two parameters, both enclosed in “’s. First is the executable; the second is the passed parameters. The latter string, of course, can (and with both IBM J9 and TAO, will) consist of several parameters.
the script is geared towards Opera Mini 4 users. Under Opera Mini 3 (or previous versions), the initial two SendLeftSoft calls will NOT result in the “Enter address” dialog coming up. With Opera Mini 3, therefore, you will need to change the second SendLeftSoft to SendCR as follows:
#SetClipText(url)
Run("\Windows\jbed.exe", "-run s0_")
Sleep(6000)
SendLeftSoft
Sleep(400)
SendCR
Note that the above code snippet has SetClipText(url) commented out (note the # at the beginning of the row). This is only needed under WM6; under previous operating systems, you MUST NOT comment it out.
finally, you can fine-tune the parameters of Sleep() in the code so that OM is still reliably invoked. With the code above, for example, I let MortScript wait for 6 seconds (6000 milliseconds) before starting to emulating left softkey presses.
Quick explanation for the different behavior under WM6 (only for geeks / hackers / programmers!)
Under WM6, invoking the default Web browser isn’t any more done the same way as under previous operating systems. There, the contents of HKEY_LOCAL_MACHINE\ SOFTWARE\Microsoft\ Shell\Rai\ : DEFBROWSER\1 tell the system what to invoke. Here, unfortunately, it’s impossible to define additional command-line parameters. Parameters DO get passed (in the background), but you can’t name them. MortScript, however, relies on the latter – that is, named parameters referable under their name, NOT their index.
Under pre-WM6 operating systems, it was easy to name the parameters you passed to programs as can clearly be seen in the WM5-specific Registry import file, which just overwrites the old value of HKEY_CLASSES_ROOT\ http\Shell\Open\ Command:
@="\"\\Program Files\\MortScript\\MortScript.exe\" \"\\Program Files\\MortScript\\OMInvokeAndPasteScript.mscr\" url=\"%1\""
Here, I’ve named the parameter “url”. This is why the first row in the MortScript file is as follows:
SetClipText(url)
This just instructs MortScript to copy the contents of the “var” variable (which, now, comes from the “outside” of the script) to the clipboard so that, later, it can be pasted back to the URL input field.
Feel free to quickly scrutinize the two, WM6- and pre-WM6-specific Registry import files so that you can see this for yourself.
Currently, I don’t know a way of naming parameters under WM6. Of course, when I come up with a solution, I let you all know.
UPDATE (11/29/2007): thanks to badbob001 on my blog, now, as opposed to the initial case, WM6 devices (both Pocket PC's and Smartphones) are FULLY supported!!!!!!!
This all means there is no longer a difference between how WM6 and pre-WM6 operating systems behave. You only need to make sure to get the right .MSCR and Registry import files from the already-updated ZIP file, depending on your operating system version. That is, for WM6, get the files from the WM6 subdirectory, for pre-WM6 operating systems, from the WM5 one. And, of course, modify the scripts if Opera Mini isn't deployed as the first app under Jbed, the, by default, supported (and highly recommended) MIDlet manager.
Again: Under WM6, manual link copying to the clipboard is no longer needed and, again, it works 100% on WM6 Smartphones as well!
(note that now that WM6 is fully supported, I haven’t edited the original article; its WM6-related parts are now outdated. Again, WM6 is fully supported now and there's no difference between the usability on pre-WM6 and the WM6 platforms any more.)
Undo
I hate to be a pain, but I am trying to view the registry file. Can you suggest a product to view the file? I followed the instructions and was having problems, so I am trying to undo the registry changes.
Thanks
Never mind. I found the registry entry.
Tnx for sharing this great idea ... always wanted one, at least until Opera Mobile 9 will be released.
I have HTC Artemis = WM6 Pro, Cloudyfa Jbed 20070802.2.1 on Storage Card and Opera Mini 4. This is the only midlet so far installed, none other present as of now.
Following is my experience:
1. When Opera Mini is not running, and has to be launched I always get a message "Could not find suite s0_", and then later Opera Mini does get launched but no address input happens. Simply the browser is launched in other words.
2. If Opera Mini is already running, everything works nicely ... no probs here.
3. I use this app, RSS Reader, Spb Insight (I think the best, beats NewsReader except that it has no podcast download support). When I click on the link address in the article (btw, I even cannot copy them in this app), PocketIE/Opera Mobile 8.65 is launched. How can this be resolved.
The script that I am using is that of badbob001, with small mod:
If (ProcExists("jbed.exe"))
Run("\Storage Card\Program Files\Jbed\jbed.exe", "-run s0_")
sleepmessage(3, "Please Wait...")
Else
Run("\Storage Card\Program Files\Jbed\jbed.exe", "-run s0_")
sleepmessage(6, "Please Wait...")
EndIf
SendLeftSoft
Sleep(100)
SendLeftSoft
Sleep(100)
SendEnd
SendHome( "",0,1 )
Sleep(100)
url = substr(url,2)
SetClipText(url)
SendCtrlKey( "V" )
Sleep(100)
SendLeftSoft
I have tried with the original one as well .... same results.
Ok, I got rid of s0_ error. After trying 0-10, I decided to delete the string all together and it launches now without any error. So the line now looks like:
newer --> Run("\Storage Card\Program Files\Jbed\jbed.exe")
older --> Run("\Storage Card\Program Files\Jbed\jbed.exe", "-run s1_")
So, why then we need this s0_ string anyway !!!
But then again, if Opera Mini is not running, after clicking on the link in e-mail, the midlet manager is launced and OM fired, and then no URL input happens. If OM is already running, then all is fine. And still haven't found how to resolve URL linking with Spb Insight application.
BTW, for my Artemis @260Mhz, sleep strings of "If= 2 and Else=4" seconds is perfect.
And, of course, the above-explained way of copying URL’s to Opera Mini doesn’t work with touchscreen-less MS Smartphone (in the new terminology, Windows Mobile 6 Standard) models. Not even with external Copy/Paste tools like VITO’s excellent, free CopyPaste.
Click to expand...
Click to collapse
Well, it works for me. If I recieve link in email I just click Reply to be able to select and copy the link. Open Opera Mini and paste the link (using Vito CopyPaste). The copy & paste works in intent Midlet Manager (v10.1.7.559) fine.
EazyVG said:
Ok, I got rid of s0_ error. After trying 0-10, I decided to delete the string all together and it launches now without any error. So the line now looks like:
newer --> Run("\Storage Card\Program Files\Jbed\jbed.exe")
older --> Run("\Storage Card\Program Files\Jbed\jbed.exe", "-run s1_")
So, why then we need this s0_ string anyway !!!
Click to expand...
Click to collapse
That is strange that just by running jbed.exe, opera mini is launched automatically or am I not understanding you?
EazyVG said:
But then again, if Opera Mini is not running, after clicking on the link in e-mail, the midlet manager is launced and OM fired, and then no URL input happens. If OM is already running, then all is fine.
Click to expand...
Click to collapse
Perhaps opera mini is taking longer than your script expects. In the original script with sleep(6000), it expects opera to run in 6 seconds. On my device, that is too short and I had to increase it to sleep(8000) or sleep(8500). Just launch opera and count how long it takes to get a rough idea.
Yes, you are right. I have deleted the string mentioning s0_ all together, and it does work without it. So, what you think.
Basically, here is what I tried:
Code:
If (ProcExists("jbed.exe"))
Run("\Storage Card\Program Files\Jbed\jbed.exe")
sleepmessage(2, "Please Wait...")
Else
Run("\Storage Card\Program Files\Jbed\jbed.exe")
sleepmessage(10, "Please Wait...")
EndIf
SendLeftSoft
Sleep(100)
SendLeftSoft
Sleep(100)
SendEnd
SendHome( "",0,1 )
Sleep(100)
url = substr(url,2)
SetClipText(url)
SendCtrlKey( "V" )
Sleep(100)
SendLeftSoft
What it does with that 10 seconds command is that, it launches Jbed, waits 10 seconds at the menu option (where there is a list of Midelets installed, in my case for now only Opera), and then only launches OM, and again there is no auto address input. So increasing seconds doesn;t give me anything. What can be the problem?
And what about handling of links in apps such as Spb Insight ... I haven't tried clicking links in any other 3rd party app, but perhaps the result will be same, i.e. not launching the OM but going straight to PocketIE.
MOVED our discussion .... as this one is for Smartphones. The link to your other General post:
http://forum.xda-developers.com/showthread.php?p=1707520#post1707520
I have problems with the url parameter on WM5 Smartphone.
If I have in the registry entry like this:
"\Storage Card\Program Files\MortScript\MortScript.exe" "\Storage Card\Program Files\MortScript\OMInvokeAndPasteScript.mscr" url="%1"
It says "There is no application associated with http://something.com. Run the applicaition first and open this file inside the application."
"\Storage Card\Program Files\MortScript\MortScript.exe" "\Storage Card\Program Files\MortScript\OMInvokeAndPasteScript.mscr"
This runs the script fine (except the address of course).
"\Storage Card\Program Files\MortScript\MortScript.exe" "\Storage Card\Program Files\MortScript\OMInvokeAndPasteScript.mscr" url=
This launches the script as well but it dosnt paste the url. I have moddified the script for my intent Midlet Manager but I still have "SetClipText(url)" and "SendCtrlKey( "V" )".
Any help?
I'm confused.
Here you say it worked...
EazyVG said:
Yes, you are right. I have deleted the string mentioning s0_ all together, and it does work without it. So, what you think.
Click to expand...
Click to collapse
But here you say a list of midlets comes up.
EazyVG said:
What it does with that 10 seconds command is that, it launches Jbed, waits 10 seconds at the menu option (where there is a list of Midelets installed, in my case for now only Opera), and then only launches OM, and again there is no auto address input. So increasing seconds doesn;t give me anything. What can be the problem?
Click to expand...
Click to collapse
If you see a list of midlets come up, IT DID NOT WORK. The point of all this "-run s?_" business to so that the midlet list is bypassed and the midlet is run directly. If you can't get this direct launch method to work, then you will need to modify the script to press enter at the midlist list to launch opera for you. You may think the script is working because a command in script 'accidentally' launches om for you but the script expects om to be already started.
You should study this page:
http://pdaphonehome.com/forums/ppc-...ed-includes-info-new-java-midlet-manager.html
EazyVG said:
And what about handling of links in apps such as Spb Insight ... I haven't tried clicking links in any other 3rd party app, but perhaps the result will be same, i.e. not launching the OM but going straight to PocketIE.
Click to expand...
Click to collapse
It is possible that applications ignore the system settings and launch links by invoking pocket ie. Did you even run a windows application and click on a link in help > about and internet explorer opens instead of your default browser like firefox. That application, instead of passing the url to the os to take care of, is running 'iexplore <url>'.
But here you say a list of midlets comes up.
Click to expand...
Click to collapse
Well, what I meant is where the list of midlets is showed, in my case, for now there is only Opera Mini, otherwise I am also gonna have few games, apps and Gmail.
It is possible that applications ignore the system settings and launch links by invoking pocket ie. Did you even run a windows application and click on a link in help > about and internet explorer opens instead of your default browser like firefox. That application, instead of passing the url to the os to take care of, is running 'iexplore <url>'.
Click to expand...
Click to collapse
Of course I tried, such as with links embedded in e-mails. So as I undersstand, not all apps follow what is known as Global Rules.
then you will need to modify the script to press enter
Click to expand...
Click to collapse
Can you please tell me how this script should look like, kinda never don this before on my own.
BTW, it does bypass the midlet list section, only when OM is already running in the background. I'll check the link you have given me ... hope it will shed some light.
EazyVG said:
BTW, it does bypass the midlet list section, only when OM is already running in the background.
Click to expand...
Click to collapse
It bypasses the midlet list because you already have a java application running. You can't go back to the midlet list until you quit the existing midlet application because you can only have one midlet running at a time. You'll just need to read the reference web pages to figure out what s?_ value to use to invoke om directly. If you already have other midlets installed, then you must have invoked another installed midlet by chance. If you had tried s0_ up to say s20_ (don't know how many midlets had you installed), then perhaps you jvm doesn't support direct run.
Is it possible that you have jbed installed on both the storage card and main memory and somehow it's looking for your midlets in the wrong storage location? Just a guess since I've just learned enough just to get om working and I don't have jbed on a storage card. According to the link, you should look in \windows\appdb and find the .jar for opera. Each midlet application should have a jar named s?_suite.jar where ? is a number. Once you know the value of ?, then you know what to put in your script. If you have your jars on the storage card instead, then you will need to research if you need to change anything to get direct launching working.
So for now, your problem is getting a midlet to directly run and has yet to even involve the link-copy-paste idea of the original post.
So far I have tried s0 to s10, and had maximum, prior to deleting the rest apart from OM, somewhere abound 6. I guess this has to do something with my Jbed being present in ROM (as it came with coocked ROM and I can't delete it) and one on storage, but am quite sure that the one from storage card is being run, as per registry inputs. I'll try to leave one just on main memory and reinstall the OM.
But still, the main question for me remains the one with 3rt party apps and embedded links in them, such as Spb Insight, which I use on daily basis. I hope soon one or the other solution will be found. Perhaps some tweak to be done in the registry itself for Spb and other apps to launch the Jbed/OM combo!
Tnx for the tip.
EazyVG said:
So far I have tried s0 to s10, and had maximum, prior to deleting the rest apart from OM, somewhere abound 6. I guess this has to do something with my Jbed being present in ROM (as it came with coocked ROM and I can't delete it) and one on storage, but am quite sure that the one from storage card is being run, as per registry inputs. I'll try to leave one just on main memory and reinstall the OM.
Click to expand...
Click to collapse
Did you look in the \Windows\appdb\ folder? Opera for me is installed as s0_suite.jar and has a size of 97.7KB (100,056 bytes). I had also applied a hack to the selector.utf file so that I'm not prompted for permission when opera wants to access the network. Do you get a prompt when opera starts? That *may* be related.
EazyVG said:
But still, the main question for me remains the one with 3rt party apps and embedded links in them, such as Spb Insight, which I use on daily basis. I hope soon one or the other solution will be found. Perhaps some tweak to be done in the registry itself for Spb and other apps to launch the Jbed/OM combo!
Click to expand...
Click to collapse
This may be answered here, starting at post #24.
http://www.howardforums.com/showthread.php?t=1283853&page=2
It looks like even on wm6, some applications still use the wm5 registry settings so you may need to apply the registry changes for both wm5 and wm6.
UPDATE (12/04/2007): Major WM6-related updates have taken place in the meantime.
In the meantime, my blog reader badbob001 has refined the script. Now, if you click a link, you’ll be presented a choice list, where you can select whether to pass the given URL to Internet Explorer Mobile, Opera Mini, just copy to the clipboard or just cancel the operation. This will help you in selecting the right browser if you (still) plan to use IEM (or other native Web browsers like Opera Mobile, Netfront or Minimo).
Cool, eh?
Remember that you don’t need to deploy this script if you don’t need this kind of functionality but always want to be redirected right to Opera Mini. Therefore, I’ve also included the older version of this script in the ZIP file. It’s in the NoBrowserSelectionDialog subfolder. Note that this script has also been updated a bit: it checks for Jbed already running; if it is, then, it doesn’t wait that much. Again, thanks for badbob001 for refining and performance-tuning my initial script.
Note that the usual stuff applies: if the script doesn’t invoke Opera Mini but invokes something else, edit both occurrences of s0 and appropriately change 0 to a greater number.
Finally, note that, these updates & bugfixs being all WM6-related, I haven't edited the old, WM5-related, working MortScript file. If you need some speedup and/or dynamic, runtime selection of the browser you'd like to use, you'll want to copy either of the two new MortScript files - it'll work.
2. Upon HowardForums forum member volwrath’s bug report, I’ve enhanced the Registry import file to support invoking Opera Mini from all applications, not only Messaging and Notes. I wouldn't have thought WM6 is so half-baked (that is, half of the apps still depend on the pre-WM6 (that is, the HKCR/http/Open/Command) way of invocation). That is, the WM6 Registry import script has also been enhanced (basically, I've just added the contents of the old WM5-related Registry import file to it), not only the MortScript file.
Note that reading local files will still default to the system-level browser as I haven’t redefined the default application for opening .htm(l) files. That is, by default, Internet Explorer Mobile will open these.
Again and again, it can’t be stressed enough how much these hacks enhance the usability of Opera Mini under Windows Mobile! I really recommend giving Opera Mini a try – you certainly won’t regret it!
Thanks Menneisyys and badbob001 ..... you the king of the hill.
On my HTC P3300 running WM6, Claudyfs Jbed 1.2, now all is working exceptionally well. Now with the updated script and reg tweak even the links embedded in 3rd party apps (such as the one I mentioned, Spb Insight) the OM get's launched and the browser shows the web site without any delays. The only thing I changed was the Sleep string from 6 to 4.
I can't thank you guys enough ... definitely MAJOR BREAKTHROUGH
UPDATE (12/12/2007): upon the problem reports of several Smartphone users (see the posts for example HERE), I’ve released a slightly modified version of the script that, instead of pasting, uses keyboard emulation. This makes it possible to use the script on some Smartphones that are incompatible with pasting.
The script is available HERE. Remember to remove the SP.2 extension before deploying it. Note that, again, it's ONLY meant for Smartphone users that previous script versions didn't work with!!!
Note that while it works on for example the I3 Beta of WM6 of the Samsung BJ, it doesn’t do the same on the (original) WM5 version of the same device or the HTC Vox (s710). It seems it’s impossible to support these devices with the current MortScript version. I'll also try to reimplement the script in nScriptm (another, less widely used scripting language / interpreter) - hope it is able to paste / send characters to these, still incompatible MS Smartphone models.
UPDATE (12/13/2007): I’ve also made available the Registry import file you’ll need to use when reverting to the original, Internet Explorer-only associations. It’s HERE.
UPDATE (12/15/2007): XDA-Devs forum member shlomki has just released the different hacks in CAB format so that they’re very easy to install. They’re available HERE. Comments are welcome. (Note that, due to lack of time, I haven’t checked them.)

(MY) MAJOR BREAKTHROUGH: now, you can use Opera Mini as the system-level Web browser!

Note that the execution has taken on a whole new life with new people continuing the development. As there’re new versions arriving almost every day, I can’t keep up with editing the thread starter posts to reflect the latest state of the development. Therefore, you will want to
1. start with the last posts in this thread, particularly looking for my, JZ SmartMort’s and badbob001's posts and announcements.
2. go to http://forum.xda-developers.com/showthread.php?t=382043 for JZ SmartMort’s similarly named, excellent app.
3. badbob's thread is at http://forum.xda-developers.com/showthread.php?t=384271 - you'll want to visit it too
The original, now-outdated article follows:
You, hopefully, already know Opera Mini 4, which, currently, I recommend the most for all Windows Mobile users as the primary browser. It’s especially useful if you are on either a slow (say, GPRS) or expensive (non-flat rate) data plan and/or you also use Opera on the desktop and, therefore, can make use of the excellent, remote (!) favorite synchronization offered by Opera Link.
So far, it was impossible to quickly invoke Opera Mini from any mailer applications by just clicking / activating Web links in them. This was a major stumbling block for many, which is quite understandable. Yes, it’s a major pain in the back to having to rely on Internet Explorer (Opera Mobile, Netfront etc.) for displaying the given Web page - instead of the much faster / cheaper / prettier Opera Mini.
Of course, Pocket PC (using the new terminology, Windows Mobile 6 Professional / Classic) users have always had an escape route. They still could highlight the link and, then, copy it to the clipboard. After that, they could still invoke Opera Mini, go to Menu / Enter Address and paste the URL there. (Assuming, of course, they use a copy/paste-capable MIDlet Manager. The outdated and, unless you have specific needs or an old operating system, in no way recommended TAO isn’t one of them; the recommended Jbed is.) An example of highlighting a link and copying to the clipboard is depicted in the following screenshot:
{
"lightbox_close": "Close",
"lightbox_next": "Next",
"lightbox_previous": "Previous",
"lightbox_error": "The requested content cannot be loaded. Please try again later.",
"lightbox_start_slideshow": "Start slideshow",
"lightbox_stop_slideshow": "Stop slideshow",
"lightbox_full_screen": "Full screen",
"lightbox_thumbnails": "Thumbnails",
"lightbox_download": "Download",
"lightbox_share": "Share",
"lightbox_zoom": "Zoom",
"lightbox_new_window": "New window",
"lightbox_toggle_sidebar": "Toggle sidebar"
}
This, however, resulted in multiple screen taps and has never been so simple as just clicking a link in the mail body and let the system invoke the browser and pass the link to it.
And, of course, the above-explained way of copying URL’s to Opera Mini doesn’t work with touchscreen-less MS Smartphone (in the new terminology, Windows Mobile 6 Standard) models. Not even with external Copy/Paste tools like VITO’s excellent, free CopyPaste.
Because of the acuteness of the problem, I’ve thought very hard on solving the problem and making Opera Mini (OM for short) a browser that doesn’t suffer from this problem. And, during a lengthy swimming & sauna session, it occurred to me how it can be solved. Yeah, it’s mostly during swimming that I get the best, most revolutionary ideas
First, the pros and the cons so that you can see what you can expect of my solution.
Pros
Fully Seamless integration into Messaging (or any other mailer app), Notes, Word Mobile, PDF readers, MobiPocket (or any other text processing / viewing app) etc under ALL Windows Mobile / Pocket PC operating systems before Windows Mobile 6, on both the Pocket PC and Smartphone platforms
While it’s not compatible with WM6 Smartphones (WM6 Standard devices), on WM6 Pocket PC’s, you can still pretty easily invoke OM and pass the given URL to it.
It’s free and pretty easy to set up
Cons
It isn’t compatible with WM6 Smartphones like the HTC Vox (s710) or the HTC Wings (s730). Sorry.
With WM6 Pocket PC’s (unlike previous OS version), some additional manual work is needed, compared to the pre-WM6 cases. That is, just clicking the link won’t suffice.
It will NOT work on local HTM(L) files on your device – that is, not external links. That is, you won’t be able to render a local HTML file if you click it from File Explorer. However, as it’s mostly remote links that you’ll want to view, not local files, this isn’t that big a problem.
Again, let’s emphasize it again:
with WM6 PPC’s (unlike with pre-WM6 ones), you must copy the URL to the clipboard and only after this click the link!
It does NOT work with touchscreen-less WM6 Smartphones (WM6 Standard devices)! That’s because of the operating system’s inability for any kind of copy/paste operation.
Installation, usage
download and install MortScript if you haven’t already done so. Make sure you install it in the main memory (unless you’re ready to modify the scripts I’ve provided).
download THIS file
depending on your operating system version, go to either the WM5 or WM6 directory of the ZIP file downloaded in the previous step. Note that if you’re still using a pre-WM5 operating system, you’ll need the WM5 version.
transfer OMInvokeAndPasteScript.mscr to \Program Files\MortScript on your device
import the registry file into the Registry (WM5: OMInvokeAndPaste.reg; WM6: OMWM6DefBrowser.reg). if you do this on a MS Smartphone, make sure it is application unlocked. I’ve published several articles on (the absolutely legal) app unlock; see for example THIS
If you absolutely don’t know how the Registry import file needs to be imported, do either of the following:
either get (and, even better, purchase - they DO deserve it as it’s a REALLY excellent app) SOTI’s Pocket Controller. Install it, connect to your device, click the Registry icon. Then, select Edit / Import in the new remote Registry Editor window. Search for the registry file and import it.
or, get Resco Explorer. Install it on your mobile device; make sure you don’t disable the Registry editor install. Start the latter and, then, just exit it – this makes sure .REG files become associated with the Registry editor. Now, after you’ve transferred the REG file to your handset, just click it from inside File Explorer. Voila: it gets imported into the local Registry.
That’s all – from now on, clicking links in mails, documents etc. should fire up OM and pass the URL.
How you can (and when you must) modify OMInvokeAndPasteScript.mscr ?
The majority of the application logic is, in both the WM5 and WM6 versions, in OMInvokeAndPasteScript.mscr. Therefore, you’ll need to modify it in the following cases:
first, the most important instruction you’ll need to modify is the second row Run("\Windows\jbed.exe", "-run sX_"), where X is either 0 or 1 (I’ve set it to 0 in the WM5 and to 1 in the WM6 script).
As is explained in my earlier Opera Mini & Jbed-tutorial and posts (see for example THIS) , along with other people (see for example THIS), X stands for as how manieth OM was deployed under Jbed.
also note that, if you have to use a pre-WM5 operating system, it’s here that you need to define your TAO / IMB J9 links. Please consult the related section in the MIDlet Bible for more info on how these links need to be created.
Just remember the following: the Run() function requires two parameters, both enclosed in “’s. First is the executable; the second is the passed parameters. The latter string, of course, can (and with both IBM J9 and TAO, will) consist of several parameters.
the script is geared towards Opera Mini 4 users. Under Opera Mini 3 (or previous versions), the initial two SendLeftSoft calls will NOT result in the “Enter address” dialog coming up. With Opera Mini 3, therefore, you will need to change the second SendLeftSoft to SendCR as follows:
#SetClipText(url)
Run("\Windows\jbed.exe", "-run s0_")
Sleep(6000)
SendLeftSoft
Sleep(400)
SendCR
Note that the above code snippet has SetClipText(url) commented out (note the # at the beginning of the row). This is only needed under WM6; under previous operating systems, you MUST NOT comment it out.
finally, you can fine-tune the parameters of Sleep() in the code so that OM is still reliably invoked. With the code above, for example, I let MortScript wait for 6 seconds (6000 milliseconds) before starting to emulating left softkey presses.
Quick explanation for the different behavior under WM6 (only for geeks / hackers / programmers!)
Under WM6, invoking the default Web browser isn’t any more done the same way as under previous operating systems. There, the contents of HKEY_LOCAL_MACHINE\ SOFTWARE\Microsoft\ Shell\Rai\ : DEFBROWSER\1 tell the system what to invoke. Here, unfortunately, it’s impossible to define additional command-line parameters. Parameters DO get passed (in the background), but you can’t name them. MortScript, however, relies on the latter – that is, named parameters referable under their name, NOT their index.
Under pre-WM6 operating systems, it was easy to name the parameters you passed to programs as can clearly be seen in the WM5-specific Registry import file, which just overwrites the old value of HKEY_CLASSES_ROOT\ http\Shell\Open\ Command:
@="\"\\Program Files\\MortScript\\MortScript.exe\" \"\\Program Files\\MortScript\\OMInvokeAndPasteScript.mscr\" url=\"%1\""
Here, I’ve named the parameter “url”. This is why the first row in the MortScript file is as follows:
SetClipText(url)
This just instructs MortScript to copy the contents of the “var” variable (which, now, comes from the “outside” of the script) to the clipboard so that, later, it can be pasted back to the URL input field.
Feel free to quickly scrutinize the two, WM6- and pre-WM6-specific Registry import files so that you can see this for yourself.
Currently, I don’t know a way of naming parameters under WM6. Of course, when I come up with a solution, I let you all know.
Awesome.
Thanks for this breakthrough.
I shall test it tonight when I get home and report back my success.
UPDATE (11/29/2007): thanks to badbob001 on my blog, now, as opposed to the initial case, WM6 devices (both Pocket PC's and Smartphones) are FULLY supported!!!!!!!
This all means there is no longer a difference between how WM6 and pre-WM6 operating systems behave. You only need to make sure to get the right .MSCR and Registry import files from the already-updated ZIP file, depending on your operating system version. That is, for WM6, get the files from the WM6 subdirectory, for pre-WM6 operating systems, from the WM5 one. And, of course, modify the scripts if Opera Mini isn't deployed as the first app under Jbed, the, by default, supported (and highly recommended) MIDlet manager.
Again: Under WM6, manual link copying to the clipboard is no longer needed and, again, it works 100% on WM6 Smartphones as well!
(note that now that WM6 is fully supported, I haven’t edited the original article; its WM6-related parts are now outdated. Again, WM6 is fully supported now and there's no difference between the usability on pre-WM6 and the WM6 platforms any more.)
Moved to this post, as I noticed that one is for Smartphones, while I am on WM6 Pro.
So as I was saying:
Yes, you are right. I have deleted the string mentioning s0_ all together, and it does work without it. So, what you think.
Basically, here is what I tried:
Code:
If (ProcExists("jbed.exe"))
Run("\Storage Card\Program Files\Jbed\jbed.exe")
sleepmessage(2, "Please Wait...")
Else
Run("\Storage Card\Program Files\Jbed\jbed.exe")
sleepmessage(10, "Please Wait...")
EndIf
SendLeftSoft
Sleep(100)
SendLeftSoft
Sleep(100)
SendEnd
SendHome( "",0,1 )
Sleep(100)
url = substr(url,2)
SetClipText(url)
SendCtrlKey( "V" )
Sleep(100)
SendLeftSoft
What it does with that 10 seconds command is that, it launches Jbed, waits 10 seconds at the menu option (where there is a list of Midelets installed, in my case for now only Opera), and then only launches OM, and again there is no auto address input. So increasing seconds doesn;t give me anything. What can be the problem?
And what about handling of links in apps such as Spb Insight ... I haven't tried clicking links in any other 3rd party app, but perhaps the result will be same, i.e. not launching the OM but going straight to PocketIE.
UPDATE (12/04/2007): Major WM6-related updates have taken place in the meantime.
In the meantime, my blog reader badbob001 has refined the script. Now, if you click a link, you’ll be presented a choice list, where you can select whether to pass the given URL to Internet Explorer Mobile, Opera Mini, just copy to the clipboard or just cancel the operation. This will help you in selecting the right browser if you (still) plan to use IEM (or other native Web browsers like Opera Mobile, Netfront or Minimo).
Cool, eh?
Remember that you don’t need to deploy this script if you don’t need this kind of functionality but always want to be redirected right to Opera Mini. Therefore, I’ve also included the older version of this script in the ZIP file. It’s in the NoBrowserSelectionDialog subfolder. Note that this script has also been updated a bit: it checks for Jbed already running; if it is, then, it doesn’t wait that much. Again, thanks for badbob001 for refining and performance-tuning my initial script.
Note that the usual stuff applies: if the script doesn’t invoke Opera Mini but invokes something else, edit both occurrences of s0 and appropriately change 0 to a greater number.
Finally, note that, these updates & bugfixs being all WM6-related, I haven't edited the old, WM5-related, working MortScript file. If you need some speedup and/or dynamic, runtime selection of the browser you'd like to use, you'll want to copy either of the two new MortScript files - it'll work.
2. Upon HowardForums forum member volwrath’s bug report, I’ve enhanced the Registry import file to support invoking Opera Mini from all applications, not only Messaging and Notes. I wouldn't have thought WM6 is so half-baked (that is, half of the apps still depend on the pre-WM6 (that is, the HKCR/http/Open/Command) way of invocation). That is, the WM6 Registry import script has also been enhanced (basically, I've just added the contents of the old WM5-related Registry import file to it), not only the MortScript file.
Note that reading local files will still default to the system-level browser as I haven’t redefined the default application for opening .htm(l) files. That is, by default, Internet Explorer Mobile will open these.
Again and again, it can’t be stressed enough how much these hacks enhance the usability of Opera Mini under Windows Mobile! I really recommend giving Opera Mini a try – you certainly won’t regret it!
Gr8 ... tnx to all mind tanks and coders .... great, simply great. Hope with this, and my mobile, HTC P3300, being hard reseted, and OM being the first JApplet installed on main memory I will have no further probs
BTW, just wanted to know. Once I have .reg file registered in registry, and suppose I want to return back to factory settings, what will be the simplest procedure.
EazyVG said:
Gr8 ... tnx to all mind tanks and coders .... great, simply great. Hope with this, and my mobile, HTC P3300, being hard reseted, and OM being the first JApplet installed on main memory I will have no further probs
BTW, just wanted to know. Once I have .reg file registered in registry, and suppose I want to return back to factory settings, what will be the simplest procedure.
Click to expand...
Click to collapse
Just export the two reg keys as they were BEFORE your importing the regifile.
Should you no longer have them, let me know and I create it for you when I have some time.
Gr8 Breakthrough
Thanks Menneisyys and badbob001 ..... you the king of the hill.
On my HTC P3300 running WM6, Claudyfs Jbed 1.2, now all is working exceptionally well. Now with the updated script and reg tweak even the links embedded in 3rd party apps (such as the one I mentioned, Spb Insight) the OM get's launched and the browser shows the web site without any delays. The only thing I changed was the Sleep string from 6 to 4.
I can't thank you guys enough ... definitely MAJOR BREAKTHROUGH
Please Help!
I have done everything as mentioned. It comes up with the options - I select OM - It loads OM - that's it!
Nothing loads but when I go to Pocket Word and paste the info, it is in the clipboard.
What do I need to do to get the info from the clipboard into OM?
Otherwise, great app!
cbus said:
I have done everything as mentioned. It comes up with the options - I select OM - It loads OM - that's it!
Nothing loads but when I go to Pocket Word and paste the info, it is in the clipboard.
What do I need to do to get the info from the clipboard into OM?
Otherwise, great app!
Click to expand...
Click to collapse
Also - If I have OM running then click on link, it opens up ie and exits OM and IE?????
Any thoughts?
Ok - I read thru the middle of your info. I am running wm6 pro on sprint touch.
I put the # in front of setcliptext(url)
and put in SendCR instead of the second SendLeftSoft
What happens is I get OM to load and it opens a url but it is not the url I selected. It is from a previous clipboard item. I will continue to play with it.
any thoughts would be appreciated!
Update!
Ok - Got it working!
For those of you having similar issues, here is what I did.
I am running OM 4.0.9751
I took the # symbol off the front and that fixed the clipboard issue.
I did however leave the second SendCr and that did the trick.
So it looks like this:
SendLeftSoft
Sleep100
SendCR
Sleep100
I was under the impression that with OM 4.0 that I didn't need the sendcr command.
Please let me know if this is correct?
Still Exiting
So everything works fine - the only problem is that if OM is running in background, then it will go to OM then to IE then it says in ie "shut down Opera Mini?" Then it shuts down.
Any ideas?
made a fix for the exiting problem
I changed the mortscript to the following and that fixed the exiting issue however I am sure there is an easier way.
if (substr(url,1,1) eq " ")
url = substr(url,2)
EndIf
list[1] = "Open in Opera Mini"
list[2] = "Open in Pocket IE"
list[3] = "Copy to clipboard"
list[4] = "Cancel"
Choice("With this link...", url, list)
Case(1)
Call OpenOM
Case(2)
Run("\Windows\iexplore.exe", url)
Case(3)
SetClipText(url)
Case(0,4)
Exit
EndChoice
Sub OpenOM
If (ProcExists("jbed.exe"))
Run("\Windows\jbed.exe", "-run s2_")
sleep(2000)
SendRightSoft
sleep(2000)
Else
Run("\Windows\jbed.exe", "-run s2_")
sleep(6000)
EndIf
SendLeftSoft
Sleep(100)
SendCR
Sleep(100)
SetClipText(url)
SendEnd
SendHome("",0,1 )
Sleep(100)
SendCtrlKey("V")
Sleep(100)
SendLeftSoft
EndSub
Hope this helps!
Please let me know if there is an easier way.
UPDATE (12/12/2007): upon the problem reports of several Smartphone users (see the posts for example HERE), I’ve released a slightly modified version of the script that, instead of pasting, uses keyboard emulation. This makes it possible to use the script on some Smartphones that are incompatible with pasting.
The script is available HERE. Remember to remove the SP.2 extension before deploying it. Note that, again, it's ONLY meant for Smartphone users that previous script versions didn't work with!!!
Note that while it works on for example the I3 Beta of WM6 of the Samsung BJ, it doesn’t do the same on the (original) WM5 version of the same device or the HTC Vox (s710). It seems it’s impossible to support these devices with the current MortScript version. I'll also try to reimplement the script in nScriptm (another, less widely used scripting language / interpreter) - hope it is able to paste / send characters to these, still incompatible MS Smartphone models.
CABs Ready!!!
I made 3 cabs for easy installation of this hack.
What it does:1. Installs MortScript (Default to Internal Memory, because of links and shortcuts)
2. Installs script to Windows dir and imports Reg values (to be independant of MortScript folder)
3. Creates a shortcut for OperaMini in the programs folder!
These CABs are for ARM processors and for Pocket PC only - not smartphones.
All you need to do is install.
Have fun.
P.S: I need a confirmation that the WM5 cab works.
shlomki said:
I made 3 cabs for easy installation of this hack.
What it does:1. Installs MortScript (Default to Internal Memory, because of links and shortcuts)
2. Installs script to Windows dir and imports Reg values (to be independant of MortScript folder)
3. Creates a shortcut for OperaMini in the programs folder!
These CABs are for ARM processors and for Pocket PC only - not smartphones.
All you need to do is install.
Have fun.
P.S: I need a confirmation that the WM5 cab works.
Click to expand...
Click to collapse
You're great; I'll frontpage this!
UPDATE (12/15/2007): XDA-Devs forum member shlomki has just released the different hacks in CAB format so that they’re very easy to install. They’re available HERE. Comments are welcome. (Note that, due to lack of time, I haven’t checked them.)
Awesome - tested the WM6 without Selection Dialog and it works like a charm! Thanks for this breakthrough indeed!!!

Categories

Resources