在线观看www成人影院-在线观看www日本免费网站-在线观看www视频-在线观看操-欧美18在线-欧美1级

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫(xiě)文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

HarmonyOS微博第三方登錄實(shí)現(xiàn)(內(nèi)附代碼)

OpenHarmony技術(shù)社區(qū) ? 來(lái)源:鴻蒙技術(shù)社區(qū) ? 作者: dsttl3點(diǎn)cn ? 2021-10-11 14:21 ? 次閱讀

前期準(zhǔn)備

在微博開(kāi)放平臺(tái)注冊(cè)一個(gè)網(wǎng)站應(yīng)用,微博開(kāi)放平臺(tái)地址如下:

https://open.weibo.com/connect

進(jìn)入正題

①創(chuàng)建一個(gè)登錄頁(yè)面的 Ability

因?yàn)槭褂玫氖蔷W(wǎng)站接入的方式,所以登錄使用 WebView 來(lái)實(shí)現(xiàn)。

登錄頁(yè)布局文件:

<DirectionalLayout
xmlns:ohos="http://schemas.huawei.com/res/ohos"
ohos:height="match_parent"
ohos:width="match_parent"
ohos:orientation="vertical">

<ohos.agp.components.webengine.WebView
ohos:id="$+id:WebView_weibologin"
ohos:height="match_parent"
ohos:width="match_parent"/>

DirectionalLayout>

②在登錄頁(yè) AbilitySlice 中對(duì) WebView 進(jìn)行設(shè)置。

publicvoidonStart(Intentintent){
super.onStart(intent);
super.setUIContent(ResourceTable.Layout_ability_wei_bo_login);

WebViewmyWebView=(WebView)findComponentById(ResourceTable.Id_WebView_weibologin);
myWebView.getWebConfig().setJavaScriptPermit(true);

//自定義WebAgent用于登錄的相關(guān)操作
myWebView.setWebAgent(newWebAgent(){

//isNeedLoadUrl當(dāng)WebView即將打開(kāi)一個(gè)鏈接時(shí)會(huì)調(diào)用此方法
@Override
publicbooleanisNeedLoadUrl(WebViewwebView,ResourceRequestrequest){
//request.getRequestUrl().toString().startsWith("sinaweibo")
//當(dāng)請(qǐng)求鏈接為sinaweibo開(kāi)頭(點(diǎn)擊網(wǎng)頁(yè)上一鍵登錄會(huì)喚起微博客戶端)時(shí),使用下面的方法喚起微博客戶端。
if(request.getRequestUrl().toString().startsWith("sinaweibo")){
Intentintent=newIntent();
intent.setAction("android.intent.action.VIEW");
intent.setUri(Uri.parse(request.getRequestUrl().toString()));
intent.addFlags(Intent.FLAG_ABILITY_NEW_MISSION);
startAbility(intent);
returnfalse;
}

//當(dāng)在微博客戶端授權(quán)后,會(huì)重定向至定義的網(wǎng)址,示例中重定向至https://api.dsttl3.cn/?code=【code的值】,這時(shí)候就可以從鏈接中獲取到code進(jìn)行下一步了。這里把code傳入下個(gè)頁(yè)面
if(request.getRequestUrl().toString().startsWith("https://api.dsttl3.cn)){
Stringcode=request.getRequestUrl().toString().substring(28);
Intentintent=newIntent();
//在intent中帶上code
intent.setParam("code",code);
Operationoperation=newIntent.OperationBuilder()
.withDeviceId("")
.withBundleName("cn.dsttl3.dome.weibologin")
.withAbilityName("cn.dsttl3.dome.weibologin.MyAbility")
.build();
intent.setOperation(operation);
startAbility(intent);
//結(jié)束當(dāng)前Ability
terminateAbility();
}
returntrue;
}
});
//授權(quán)連接,需要自己修改
myWebView.load("https://api.weibo.com/oauth2/authorize?client_id=2593566539&response_type=code&forcelogin=false&scope=all&redirect_uri=https%3A%2F%2Fapi.dsttl3.cn");
}

③獲取到 code 后,在 MyAbility 中獲取微博 token。

publicvoidonStart(Intentintent){
super.onStart(intent);
super.setUIContent(ResourceTable.Layout_ability_my);
Texttext=(Text)findComponentById(ResourceTable.Id_text_helloworld);
Stringcode=intent.getStringParam("code");
newThread(newRunnable(){
@Override
publicvoidrun(){
try{
StringYOUR_CLIENT_ID="2593566539";
StringYOUR_CLIENT_SECRET="383fc6262e954e18f5b7efe3c9899284";
StringYOUR_REGISTERED_REDIRECT_URI="https://api.dsttl3.cn";
StringACCESS_TOKEN_URL="https://api.weibo.com/oauth2/access_token";
OkHttpClientclient=newOkHttpClient();
FormBodybody=newFormBody.Builder()
.add("client_id",YOUR_CLIENT_ID)
.add("client_secret",YOUR_CLIENT_SECRET)
.add("grant_type","authorization_code")
.add("redirect_uri",YOUR_REGISTERED_REDIRECT_URI)
.add("code",code).build();
RequestokRequest=newRequest.Builder().url(ACCESS_TOKEN_URL).header("referer",YOUR_REGISTERED_REDIRECT_URI).post(body).build();
Callcall=client.newCall(okRequest);
Responsere=call.execute();
Strings=re.body().string();
Gsongson=newGson();
WeiBoTokenJsonw=gson.fromJson(s,WeiBoTokenJson.class);
getUITaskDispatcher().asyncDispatch(newRunnable(){
@Override
publicvoidrun(){
text.setText("登錄成功:token="+w.getAccess_token());
}
});
}catch(IOExceptione){
e.printStackTrace();
}
}
}).start();
獲取微博 Token 完成。
編輯:jq
聲明:本文內(nèi)容及配圖由入駐作者撰寫(xiě)或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問(wèn)題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • webview
    +關(guān)注

    關(guān)注

    0

    文章

    7

    瀏覽量

    3141
  • HarmonyOS
    +關(guān)注

    關(guān)注

    79

    文章

    1975

    瀏覽量

    30204

原文標(biāo)題:HarmonyOS微博第三方登錄實(shí)現(xiàn)

文章出處:【微信號(hào):gh_834c4b3d87fe,微信公眾號(hào):OpenHarmony技術(shù)社區(qū)】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

收藏 人收藏

    評(píng)論

    相關(guān)推薦

    第三方檢測(cè)機(jī)構(gòu)該如何提升核心競(jìng)爭(zhēng)力?

    在國(guó)家“一帶一路”和“智能制造2025”等政策的引領(lǐng)下,面對(duì)競(jìng)爭(zhēng)日益激烈的國(guó)際環(huán)境,作為全球最大的制造業(yè)國(guó)家,中國(guó)的檢測(cè)行業(yè)正經(jīng)歷著迅猛的發(fā)展,成為全球增長(zhǎng)最快、潛力最大的市場(chǎng)之一。 第三方檢測(cè)逐漸
    的頭像 發(fā)表于 12-17 15:44 ?99次閱讀
    <b class='flag-5'>第三方</b>檢測(cè)機(jī)構(gòu)該如何提升核心競(jìng)爭(zhēng)力?

    鴻蒙Flutter實(shí)戰(zhàn):05-使用第三方插件

    # 鴻蒙Flutter 實(shí)戰(zhàn):使用第三方插件 在鴻蒙Flutter開(kāi)發(fā)中,如果涉及到使用原生功能,就要使用插件。使用插件有兩種方式,一種是自己編寫(xiě)原生ArkTS代碼,在Dart側(cè)調(diào)用。另外一種
    發(fā)表于 10-22 21:54

    維天地低代碼開(kāi)發(fā)平臺(tái)助力第三方質(zhì)檢行業(yè)數(shù)據(jù)可視化

    第三方檢驗(yàn)是由獨(dú)立于買(mǎi)賣(mài)雙方利益之外的第三方機(jī)構(gòu)(例如專(zhuān)業(yè)的監(jiān)督檢驗(yàn)機(jī)構(gòu))執(zhí)行的,這些機(jī)構(gòu)以公正、公平、權(quán)威的非當(dāng)事人身份,依據(jù)雙方共同認(rèn)可的法律、標(biāo)準(zhǔn)和合同等進(jìn)行商品的符合性檢驗(yàn)和認(rèn)證活動(dòng)
    的頭像 發(fā)表于 08-09 13:59 ?274次閱讀
    <b class='flag-5'>三</b>維天地低<b class='flag-5'>代碼</b>開(kāi)發(fā)平臺(tái)助力<b class='flag-5'>第三方</b>質(zhì)檢行業(yè)數(shù)據(jù)可視化

    請(qǐng)問(wèn)esp8266會(huì)開(kāi)放使用第三方云服務(wù)器嗎?

    如題,esp8266會(huì)開(kāi)放使用第三方云服務(wù)器嗎,如百度,阿里云服務(wù)器?
    發(fā)表于 07-12 11:40

    是否有可能在支持gdb的第三方集成開(kāi)發(fā)環(huán)境中使用DAS配置調(diào)試?

    是否有可能在支持 gdb 的第三方集成開(kāi)發(fā)環(huán)境中使用 DAS 配置調(diào)試?
    發(fā)表于 07-02 07:29

    微軟或?qū)㈤_(kāi)放Xbox主機(jī)授權(quán)給第三方廠商

    據(jù)悉,5 月 26 日,知名媒體 Windows Central 的編輯 Jez Corden 揭露了微軟即將遵循第三方手柄流程,允許在其 XBOX 主機(jī)上引入第三方產(chǎn)品。
    的頭像 發(fā)表于 05-27 15:18 ?660次閱讀

    MacPaw將在歐盟成員國(guó)推出第三方應(yīng)用商店Setapp

    5月14日,MacPaw正式宣布將在今年5月14日在歐盟成員國(guó)面向蘋(píng)果iPhone推出第三方應(yīng)用商城Setapp。自今年2月起,MacPaw已著手籌備該平臺(tái)。S
    的頭像 發(fā)表于 05-14 10:14 ?376次閱讀

    谷歌開(kāi)放ZenDeviceEffects API,助第三方應(yīng)用實(shí)現(xiàn)睡前屏幕管理

    據(jù)報(bào)道,谷歌近日在安卓 15 開(kāi)發(fā)者預(yù)覽版 2 中推出了全新 ZenDeviceEffects API,允許第三方應(yīng)用訪問(wèn)數(shù)字健康的就寢模式功能。
    的頭像 發(fā)表于 05-08 16:41 ?485次閱讀

    Labview如何內(nèi)嵌操作第三方EXE程序!

    自己在網(wǎng)上搜了下相關(guān)資料,能把第三方EXE內(nèi)嵌進(jìn)入容器里,但是有個(gè)問(wèn)題,這個(gè)第三方軟件必須手動(dòng)拖到容器正中間,手動(dòng)最大化。請(qǐng)問(wèn)有什么方法可以自動(dòng)實(shí)現(xiàn)嗎? 下圖是我內(nèi)嵌的POLL 軟件。如圖!
    發(fā)表于 04-18 14:26

    微軟或?qū)⒁?b class='flag-5'>第三方數(shù)字游戲商店至Xbox平臺(tái)

    微軟選擇引入這些第三方游戲平臺(tái),一面可以增加自身?yè)碛械挠布Y源和服務(wù)優(yōu)勢(shì);另一面,也是為了吸引那些在電腦端能夠自由選擇游戲購(gòu)買(mǎi)渠道的游戲用戶。據(jù)悉,此前的Xbox系列產(chǎn)品都是只內(nèi)置自家的商城。
    的頭像 發(fā)表于 03-27 15:51 ?492次閱讀

    安卓版Chrome瀏覽器現(xiàn)已支持第三方密碼管理器調(diào)用

    據(jù)報(bào)道,數(shù)據(jù)解析專(zhuān)家Leppeva64近日在安卓版谷歌Chrome瀏覽器的源代碼中透露,該瀏覽器已在安卓平臺(tái)上實(shí)現(xiàn)了對(duì)第三方密碼管理器的調(diào)用支持,并覆蓋Stable、Beta及Canary版本。
    的頭像 發(fā)表于 03-19 11:04 ?711次閱讀

    Meta Quest頭顯將支持多款安卓第三方應(yīng)用并行

    Meta已悄然啟動(dòng)了與此相關(guān)的功能,意味著Quest頭顯可同時(shí)操作多個(gè)第三方Android應(yīng)用。在此之前,Quest對(duì)第三方Android應(yīng)用有嚴(yán)格限制,用戶每次僅能打開(kāi)一個(gè),無(wú)法實(shí)現(xiàn)同屏幕并行多個(gè)
    的頭像 發(fā)表于 03-11 10:58 ?751次閱讀

    蘋(píng)果iOS 17.4版允許歐盟地區(qū)用戶使用第三方應(yīng)用商店下載應(yīng)用

    3月6日,蘋(píng)果正式推出iOS 17.4版本,首次符合歐州《數(shù)字市場(chǎng)法》規(guī)定,引入“第三方應(yīng)用商店”選項(xiàng),讓iPhone用戶能從非App Store處下載應(yīng)用程序。
    的頭像 發(fā)表于 03-06 10:51 ?879次閱讀

    MacPaw將于4月在歐洲市場(chǎng)推出Setapp第三方應(yīng)用商城

    3月1日?qǐng)?bào)道,知名廠商MacPaw于今日發(fā)表聲明,宣稱(chēng)其自有的第三方應(yīng)用商城Setapp將進(jìn)軍歐洲市場(chǎng),發(fā)布會(huì)定于今年4月舉行,并且官網(wǎng)預(yù)告了可供用戶試用的候選頁(yè)面,以吸引更多人參與到Setapp移動(dòng)版本Beta的測(cè)試中來(lái)。
    的頭像 發(fā)表于 03-01 10:16 ?574次閱讀

    蘋(píng)果明日發(fā)布iOS 17.4 RC版,新增第三方應(yīng)用商店及非WebKit支持

    知名爆料人@aaronp613表示,蘋(píng)果已經(jīng)悄然修改了App Store后臺(tái),為引進(jìn)第三方應(yīng)用商店做好準(zhǔn)備。iOS 17.4將提供用戶通過(guò)其他應(yīng)用商店下載應(yīng)用的權(quán)限,且允許瀏覽器使用非WebKit內(nèi)核,以滿足DMA法案的要求。
    的頭像 發(fā)表于 02-27 16:00 ?1159次閱讀
    主站蜘蛛池模板: 91福利网站| www.色婷婷| 在线免费观看视频黄| 大美女久久久久久j久久| 99久久99久久| 久久网色| 久久精品国产亚洲片| 很黄很黄叫声床戏免费视频| 欧美三级一级片| 手机看片日韩永久福利盒子| 一本到卡二卡三卡四卡| 欧洲精品码一区二区三区免费看| 一区二区午夜| 视频一区二区在线| 欧美成人三级伦在线观看| 天天操天天弄| 国产精品三级a三级三级午夜| 六月天丁香婷婷| 国产自在自线午夜精品视频在| 伊人欧美在线| 国产看色免费| 免费人成网ww44kk44| 日韩精品网址| 日本久久黄色| 亚洲国产色图| 1314亚洲人成网站在线观看| 91大神精品长腿在线观看网站| 日本三级电影在线观看| 日韩加勒比在线| 一级毛片一级毛片一级级毛片| 国产一级做a爰大片免费久久| 亚洲国产七七久久桃花| 日本黄大乳片免费观看| 日本一本高清| 新版天堂中文网| 婷婷亚洲综合五月天小说在线 | 婷婷五月小说| 天天色综合6| 亚洲伊人久久大香线蕉影院| 在线免费国产视频| a欧美视频|