您的位置:首页 > 理论基础 > 计算机网络

在symbian第五版中在browser control中使用自己的接入点进行网络访问

2010-06-03 17:23 555 查看

KIS000738 - Setting access point ID for Browser Control Interface has no effect in S60 3rd Edition, Feature Pack 1

From Forum Nokia Wiki




Knowledge Base Home

ID KIS000738 Creation date August 31, 2007, updated January 9, 2008
Platform S60 3rd Edition, Feature Pack 1 Devices
Category Symbian C++ Subcategory Nokia Web Browser
Keywords (APIs, classes, methods, functions):

Overview

Setting the access point ID for Browser Control Interface (CBrCtlInterface) does not have any effect in S60 3rd Edition, Feature Pack 1 devices.

Description

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.

Solution

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

RSocketServ  iSocketServer;
RConnection  iConnection;
TBool        iFirstTime;  //Initial value should be ETrue

void CMySpecialLoadObserver::NetworkConnectionNeededL(
TInt* aConnectionPtr,
TInt* aSockSvrHandle,
TBool* aNewConn,
TApBearerType* aBearerType )
{
*aBearerType = EApBearerTypeAllBearers;

if(iFirstTime)
{
//New connection is established only once
User::LeaveIfError(iSocketServer.Connect(KESockDefaultMessageSlots));
User::LeaveIfError(iConnection.Open(iSocketServer, KConnectionTypeDefault));
TCommDbConnPref prefs;
prefs.SetDialogPreference(ECommDbDialogPrefDoNotPrompt);
prefs.SetDirection(ECommDbConnectionDirectionOutgoing);
prefs.SetIapId(2);	//preferred IAP
User::LeaveIfError(iConnection.Start(prefs));
*aNewConn = ETrue;
iFirstTime = EFalse;
}
else
{
*aNewConn = EFalse;
}

*aConnectionPtr = reinterpret_cast<TInt>(&iConnection);
*aSockSvrHandle = iSocketServer.Handle();
return;
}


Retrieved from "http://wiki.forum.nokia.com/index.php/KIS000738_-_Setting_access_point_ID_for_Browser_Control_Interface_has_no_effect_in_S60_3rd_Edition,_Feature_Pack_1"
http://wiki.forum.nokia.com/index.php/KIS000738_-_Setting_access_point_ID_for_Browser_Control_Interface_has_no_effect_in_S60_3rd_Edition,_Feature_Pack_1
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐