S60中請求瀏覽器並跳轉到指定地址的方法

來源:互聯網
上載者:User

void LaunchBrowserL(const TDesC& strUrl)

{

HBufC* unExtendedLink = strUrl.Alloc();

 

CleanupStack::PushL(unExtendedLink);

HBufC* link = unExtendedLink->ReAllocL(unExtendedLink->Length() + 2);

CleanupStack::Pop(unExtendedLink);

 

CleanupStack::PushL(link);

link->Des().Insert(0, KCharacterFourPlusSpace);

 

TApaTaskList taskList(CEikonEnv::Static()->WsSession());

TApaTask task = taskList.FindApp(KWmlBrowserUid);

if (task.Exists())

{

HBufC8* param8 = HBufC8::NewLC(link->Length());

param8->Des().Append(*link);

task.SendMessage(TUid::Uid(0), *param8);

CleanupStack::PopAndDestroy(param8);

}

else

{

RApaLsSession appArcSession;

User::LeaveIfError(appArcSession.Connect()); // connect to AppArc server

TThreadId id;

appArcSession.StartDocument(*link, KWmlBrowserUid, id);

appArcSession.Close();

}

 

CleanupStack::PopAndDestroy(link);

}

 

此代碼的作用是:

1、在瀏覽器沒有開啟的時候,開啟瀏覽器請求地址;

2、而如果瀏覽器已經開啟了,向瀏覽器的task發送一個訊息(SendMessage方法),訊息包含請求的地址。

 

其中,在S60 3rd版要使第二步成功,需要如下能力:

ReadDeviceData WriteDeviceData ProtServ NetworkControl NetworkServices SwEvent LocalServices ReadUserData WriteUserData UserEnvironment

 

另外一種方法是,在檢測瀏覽器執行個體正在運行時,將瀏覽器關閉掉:task.KillTask();方法。此方法不需要以上幾種能力,只需要有PowerMgmt能力即可

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.