RM新时代网站-首页

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

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

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

HarmonyOS百度網(wǎng)盤客戶端可適配手機頁面

OpenHarmony技術(shù)社區(qū) ? 來源:HarmonyOS技術(shù)社區(qū) ? 作者:HarmonyOS技術(shù)社區(qū) ? 2022-01-04 13:58 ? 次閱讀

什么是菟盤?菟盤是由百度網(wǎng)盤開放平臺提供的 API 開發(fā)的一個百度網(wǎng)盤客戶端。主要提供網(wǎng)盤文件瀏覽,文件下載等。(100M 以下文件不限速,超過 100M 就是祖?zhèn)?100k/s了,支持會員加速)

百度網(wǎng)盤開放平臺:

https://pan.baidu.com/union/doc/

應(yīng)用主入口

本應(yīng)用主入口是 MainAbility,當(dāng)打開應(yīng)用時,會判斷用戶是否已登錄,未登錄會跳轉(zhuǎn)到登錄頁面,已登錄會跳轉(zhuǎn)到主頁。

登錄界面

登錄通過 webview 來請求百度的 access_token:

接入流程文檔:

https://pan.baidu.com/union/doc/0ksg0sbig

這里需要注意一個細(xì)節(jié),官方文檔提供的授權(quán)地址是 PC 版的,需要改造一下,來適配手機頁面。

原理是先在百度 H5 端登錄,登錄完成后重定向至授權(quán)地址。

/*
百度應(yīng)用信息
*/
StringYOUR_CLIENT_ID="";//填自己的
StringYOUR_REGISTERED_REDIRECT_URI="https://dsttl3.cn/baiduapi.html";//需要和自己在百度網(wǎng)盤開放平臺填寫的相同,有個地址就行,不需要在服務(wù)器操作。當(dāng)然也可以在服務(wù)器請求token后直接返回。
StringYOUR_CLIENT_SECRET="";//填自己的

/**
*@return移動端登錄授權(quán)鏈接
*/

publicStringgetLoginUrl(){

Stringurl="https://openapi.baidu.com/oauth/2.0/authorize?response_type=code"+
"&client_id="+YOUR_CLIENT_ID+
"&redirect_uri="+YOUR_REGISTERED_REDIRECT_URI+
"&scope=basic,netdisk&force_login=0";
try{
url=URLEncoder.encode(url,"UTF-8");
url="https://wappass.baidu.com/passport/?login&tpl=wimn&sms=1®type=1&u="+
url+
"&extrajson=%7b%22src%22%3a%22se_000000%22%7d#/password_login";
returnurl;
}catch(UnsupportedEncodingExceptione){
e.printStackTrace();
returnnull;
}
}

/**
*@returnAccess_token授權(quán)鏈接
*/

publicStringgetAccessTokenUrl(StringCODE){
return"https://openapi.baidu.com/oauth/2.0/token?grant_type=authorization_code"+
"&code="+CODE+
"&client_id="+YOUR_CLIENT_ID+
"&client_secret="+YOUR_CLIENT_SECRET+
"&redirect_uri="+YOUR_REGISTERED_REDIRECT_URI;
}

webview 內(nèi)的操作:

WebViewwebView=(WebView)findComponentById(ResourceTable.Id_login_wv);
webView.getWebConfig().setJavaScriptPermit(true);
webView.setWebAgent(newWebAgent(){
@Override
publicbooleanisNeedLoadUrl(WebViewwebView,ResourceRequestrequest){
if(request.getRequestUrl().toString().startsWith("https://dsttl3.cn")){//這個鏈接是你所填寫的YOUR_REGISTERED_REDIRECT_URI這里只寫了開頭,效果相同
Stringcode=request.getRequestUrl().toString().split("code=")[1];
StringAccess_token_url=newAppUtils().getAccessTokenUrl(code);
newThread(newRunnable(){
@Override
publicvoidrun(){
try{
OkHttpClientclient=newOkHttpClient();
Requestrequest=newRequest.Builder().url(Access_token_url)
.header("User-Agent","pan.baidu.com")
.build();
Callcall=client.newCall(request);
StringaccessTokenJson=call.execute().body().string();
AccessTokenaccessToken=newGson().fromJson(accessTokenJson,AccessToken.class);
System.out.println(accessToken.getAccess_token());
getUITaskDispatcher().asyncDispatch(newRunnable(){
@Override
publicvoidrun(){
Preferencespreferences=newDataUtils().getPreferences(getApplicationContext());
preferences.putString("token",accessToken.getAccess_token());
preferences.flush();
Intentintent1=newIntent();
Operationoperation=newIntent.OperationBuilder()
.withBundleName(MyApp.bundleName)
.withAbilityName("cn.dsttl3.tupan.Ability.IndexAbility")
.build();
intent1.setOperation(operation);
startAbility(intent1);
terminateAbility();//因為登錄完成后無需返回改界面,通過terminateAbility()方法銷毀該界面
}
});
}catch(IOExceptione){
e.printStackTrace();
}
}
}).start();
returnfalse;
}
returnsuper.isNeedLoadUrl(webView,request);
}
});
webView.load(newAppUtils().getLoginUrl());//這里是上面轉(zhuǎn)換鏈接的方法

當(dāng)用戶完成登錄后,token 就保存到本地了。

主頁面

使用 ListContainer 來顯示文件列表:

代碼有點多,不在本文介紹了,可以參考 ListContainer 的相關(guān)文檔。

這里介紹一下防手滑操作,當(dāng)該應(yīng)用只有一個界面時,一不小心返回,導(dǎo)致應(yīng)用直接退出,可以使用這個方法進(jìn)行一個提醒。

/**
*防止誤退出操作
*/
booleanexit=true;
@Override
publicbooleanonKeyDown(intkeyCode,KeyEventkeyEvent){
if(exit){
newToastDialog(getContext()).setText("再次返回退出程序").show();
exit=false;
newThread(newRunnable(){
@Override
publicvoidrun(){
Time.sleep(3000);//三秒內(nèi)再次返回退出程序
exit=true;
}
}).start();
returntrue;
}else{
returnfalse;
}
}

下載頁面

提供兩種下載方式,本地下載和 Aria2 下載:

解析處理的鏈接不能直接下載,必需要設(shè)置 User-Agent 字段為 pan.baidu.com 才能正常下載。

怎么獲取該應(yīng)用

①自己編譯,本文附件提供源碼

需要修改的地方:

包名:config.json 下的 bundleName和 cn.dsttl3.tupan 目錄下 MyApp.java 的 bundleName。不修改導(dǎo)致無法真機運行和頁面跳轉(zhuǎn)失敗。

填寫百度開放平臺應(yīng)用信息:cn.dsttl3.tupan.utils 目錄下的 AppUtils.java:


/*
百度應(yīng)用信息
*/
StringYOUR_CLIENT_ID="";//填自己的
StringYOUR_REGISTERED_REDIRECT_URI="https://dsttl3.cn/baiduapi.html";//需要和自己在百度網(wǎng)盤開放平臺填寫的相同,有個地址就行,不需要在服務(wù)器操作。當(dāng)然也可以在服務(wù)器請求token后直接返回。
StringYOUR_CLIENT_SECRET="";//填自己的

簽名文件:這個需要自己操作。

②下載測試版

不需要自己下載代碼進(jìn)行編譯,留言或私信華為賬號,我會給你添加測試。然后通過華為官方發(fā)送的短信進(jìn)行下載。

https://harmonyos.51cto.com/posts/9636

原文標(biāo)題:HarmonyOS版百度網(wǎng)盤客戶端

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

審核編輯:彭菁

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • PC
    PC
    +關(guān)注

    關(guān)注

    9

    文章

    2076

    瀏覽量

    154146
  • 編譯
    +關(guān)注

    關(guān)注

    0

    文章

    657

    瀏覽量

    32852
  • HarmonyOS
    +關(guān)注

    關(guān)注

    79

    文章

    1973

    瀏覽量

    30143

原文標(biāo)題:HarmonyOS版百度網(wǎng)盤客戶端

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

收藏 人收藏

    評論

    相關(guān)推薦

    ★★★【<百度網(wǎng)1T永久容量領(lǐng)取教程>】

    只需要登陸百度云電腦客戶端--可獲100G容量、百度云移動(Andriod版、iPhone版、iPad版)--可獲360G容量、再支付1元錢就能換購564G容量,總共就是1T哦!
    發(fā)表于 08-22 09:19

    AD15百度網(wǎng)下載

    AD15百度網(wǎng)下載
    發(fā)表于 12-14 01:24

    百度網(wǎng)限速背后 領(lǐng)頭羊為何捉襟見肘

    近日,百度網(wǎng)對免費用戶限速100-200kb/秒的問題再引起熱議。對此,百度網(wǎng)盤回應(yīng)稱,此舉是為了控制整個產(chǎn)品的運營成本,幫助產(chǎn)品更長久的活下去。但此說法似乎難以服眾。實際上,為實現(xiàn)經(jīng)營盈利,
    的頭像 發(fā)表于 06-23 10:52 ?9264次閱讀

    百度網(wǎng)從存儲工具到個人云服務(wù)操作系統(tǒng)

    經(jīng)過7年的發(fā)展,百度網(wǎng)已經(jīng)積累了6個億的用戶規(guī)模,日活躍量在1億以上。百度網(wǎng)的月付費用戶已經(jīng)超過千萬,與內(nèi)容平臺合作推出的聯(lián)合會員,日訂單量已經(jīng)超過了10萬。
    發(fā)表于 07-31 10:48 ?2045次閱讀

    金士頓聯(lián)手百度網(wǎng)開啟無縫存儲時代

    2019年8月12日,中國個人云存儲領(lǐng)軍企業(yè)百度網(wǎng)宣布與全球存儲領(lǐng)袖金士頓達(dá)成合作,通過金士頓DataTraveler Locker+ G3(DTLPG3)加密閃存盤與百度網(wǎng)的存儲
    發(fā)表于 08-16 10:55 ?647次閱讀

    百度網(wǎng)推傳輸助手功能 高效便捷收集并發(fā)送云端文件

    1月3日消息,百度網(wǎng)微信公眾號介紹了百度網(wǎng)新功能:傳輸助手。這是一個百度網(wǎng)開發(fā)的高效便捷收
    的頭像 發(fā)表于 01-03 15:39 ?4408次閱讀

    網(wǎng)市場再迎新玩家,百度網(wǎng)或?qū)⒉荒艹掷m(xù)高枕無憂的日子

    微博上關(guān)于“百度網(wǎng)疑推出國際版Dubox”的話題,將百度網(wǎng)拉回到大眾的視線里。而緊跟在話題后面的“該網(wǎng)
    的頭像 發(fā)表于 09-24 10:34 ?2178次閱讀

    百度網(wǎng)國際版 Dubox 不限速和百度網(wǎng)盤成功融合

    相信關(guān)注我的讀者中沒有幾個不知道【百度網(wǎng)】了,也是大家相當(dāng)熟悉的產(chǎn)品了,它也是國內(nèi)網(wǎng)的佼佼者。 最近,百度網(wǎng)進(jìn)軍海外了!不查不知道,一
    的頭像 發(fā)表于 09-27 11:17 ?3900次閱讀

    百度網(wǎng)PC版7.0.6更新:新增文檔大圖視圖模式

    日前,百度網(wǎng)PC版迎來了最新的7.0.6版本,在這個版本中,百度網(wǎng)盤帶來了一個很實用的新功能,新增了文檔的大圖視圖模式。 文檔大圖視圖模式可以方便用戶快速找到文檔,尤其是文檔很多的時候,該功能會讓
    的頭像 發(fā)表于 10-29 16:20 ?3308次閱讀

    百度網(wǎng)會員體系全新升級

    不知不覺,百度網(wǎng)已經(jīng)迎來了8周年。
    的頭像 發(fā)表于 11-18 09:01 ?3832次閱讀

    百度網(wǎng)PC版7.0.9首頁全新改版 微信文件自動備份

    上周末,百度網(wǎng)PC版迎來了新版,也許你已經(jīng)注意到了,在新版中,百度網(wǎng)的首頁進(jìn)行了全新改版,更簡潔了。 此外,最新發(fā)布的百度網(wǎng)
    的頭像 發(fā)表于 12-14 11:59 ?3406次閱讀

    坐擁7億注冊用戶,百度網(wǎng)仍被認(rèn)為是賠本買賣

    苦守網(wǎng)8年,市場份額超過85%,坐擁7億注冊用戶,百度網(wǎng)仍被認(rèn)為是賠本買賣。 1月11日,百度網(wǎng)
    的頭像 發(fā)表于 01-14 10:49 ?3282次閱讀

    百度網(wǎng)三星定制版網(wǎng)友實測不限速

    前幾天的三星Galaxy S21國行發(fā)布會上,三星宣布與百度合作,推出了特別版百度網(wǎng),提供2TB的初始免費云存儲空間和5GB原畫質(zhì)視頻空間。 在去年8月31日,三星決定下線云服務(wù),不再支持相冊同步
    的頭像 發(fā)表于 01-22 17:10 ?4167次閱讀

    百度網(wǎng)盤運營主體變更遷移

    近日,有不少小伙伴發(fā)現(xiàn),打開百度網(wǎng)APP后,彈出了“百度網(wǎng)服務(wù)升級”提示,需要同意新的隱私協(xié)議許可才能繼續(xù)使用。
    的頭像 發(fā)表于 01-25 10:27 ?3108次閱讀

    百度網(wǎng)APP資源下載

    百度網(wǎng)APP資源下載
    發(fā)表于 05-06 09:18 ?3次下載
    RM新时代网站-首页