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

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

From Forum Nokia Wiki

  • 开发伙伴平台:

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;
}

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

From Forum Nokia Wiki

  • 开发伙伴平台:

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;
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值