×
Namespaces

Variants
Actions

在S60第三版FP1中设置浏览器控制接口的访问连接点ID无效

From Nokia Developer Wiki
Jump to: navigation, search
Article Metadata

文章
hoolee 在 25 Mar 2008 创建
最后由 hamishwillee 在 15 Dec 2011 编辑
  • 开发伙伴平台:

S60 3rd Edition, FP1


  • 详细描述

在S60第三版FP1手机中设置浏览器控制接口(CBrCtlInterface)的访问连接点时将无效。


在S60第三版中,可以使用如下方式设置浏览器控制接口的连接点:

iBrCtlInterface->SetBrowserSettingL( TBrCtlDefs::ESettingsApId, apId );


这样就可以使用该ID(apId)下的连接点自动连接网络了,而无需弹出连接点选择对话框了。


但在S60第三版FP1中,浏览器控制接口使用了一个不同的浏览器引擎。调用上述方法将不会生效。每次使用该API打开一个URL链接时还是会弹出连接点选择对话框。


  • 解决方案

MBrCtlSpecialLoadObserver类使用了一个叫NetworkConnectionNeededL的虚成员函数。每次需要网络连接时将调用该方法。新类必须要派生自MBrCtlSpecialLoadObserver,并且在NetworkConnectionNeededL方法中完成它自己的网络连接。用户自己完成的这个对象要作为参数传递到CreateBrowserControlL方法中,它用来生成浏览器控制器。


CMySpecialLoadObserver成员变量

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;
}
This page was last modified on 15 December 2011, at 08:58.
38 page views in the last 30 days.
×