Archived:Setting access point ID for Browser Control Interface has no effect in S60 3rd Edition, Feature Pack 1 (Known Issue)
Setting the access point ID for Browser Control Interface (CBrCtlInterface) does not have any effect in S60 3rd Edition, Feature Pack 1 devices.
In S60 3rd Edition, the access point to be used for the Browser Control Interface can be set with
iBrCtlInterface->SetBrowserSettingL( TBrCtlDefs::ESettingsApId, apId );
After this, the access point with the specified ID (apId) will be used for the network connection automatically, without prompting the AP selection dialog.
In S60 3rd Edition, Feature Pack 1, a different Browser engine is used for Browser Control Interface. Calling the above function with a valid access point has no effect, and the access point selection dialog is shown every time when opening a URL using this API.
MBrCtlSpecialLoadObserver class has a virtual NetworkConnectionNeededL() member function that is called every time when a network connection is needed. A new class must be inherited from MBrCtlSpecialLoadObserver and this class has to implement its own network connection in the NetworkConnectionNeededL() function. The object of this user-implemented class can be passed as a parameter to CreateBrowserControlL() which creates the browser controller.
CMySpecialLoadObserver member variables
TBool iFirstTime; //Initial value should be ETrue
TApBearerType* aBearerType )
*aBearerType = EApBearerTypeAllBearers;
//New connection is established only once
prefs.SetIapId(2); //preferred IAP
*aNewConn = ETrue;
iFirstTime = EFalse;
*aNewConn = EFalse;
*aConnectionPtr = reinterpret_cast<TInt>(&iConnection);
*aSockSvrHandle = iSocketServer.Handle();