成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

菟盤 - 鴻蒙版百度網盤客戶端

系統
菟盤,由百度網盤開放平臺提供的API開發的一個百度網盤客戶端。主要提供網盤文件瀏覽,文件下載等。(100M以下文件不限速,超過100M就是祖傳100k/s了,支持會員加速)。

[[440624]]

想了解更多內容,請訪問:

51CTO和華為官方合作共建的鴻蒙技術社區

https://harmonyos.51cto.com

介紹

什么是菟盤

菟盤,由百度網盤開放平臺提供的API開發的一個百度網盤客戶端。

主要提供網盤文件瀏覽,文件下載等。(100M以下文件不限速,超過100M就是祖傳100k/s了,支持會員加速)

👉百度網盤開放平臺

應用主入口

本應用主入口是MainAbility ,當打開應用時,會判斷用戶是否已登錄,未登錄會跳轉到登錄頁面,已登錄會跳轉到主頁。

登錄界面

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

#星光計劃2.0# 菟盤 - 鴻蒙版百度網盤客戶端-鴻蒙HarmonyOS技術社區

接入流程文檔

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

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

  1. /* 
  2.     百度應用信息 
  3.      */ 
  4.     String YOUR_CLIENT_ID = ""; //填自己的 
  5.     String YOUR_REGISTERED_REDIRECT_URI = "https://dsttl3.cn/baiduapi.html"; //需要和自己在百度網盤開放平臺填寫的相同,有個地址就行,不需要在服務器操作。當然也可以在服務器請求token后直接返回。 
  6.     String YOUR_CLIENT_SECRET = ""; //填自己的 
  7.  
  8.     /** 
  9.      * @return 移動端登錄授權鏈接 
  10.      */ 
  11.  
  12.     public String getLoginUrl(){ 
  13.  
  14.         String url = "https://openapi.baidu.com/oauth/2.0/authorize?response_type=code" + 
  15.                 "&client_id=" +YOUR_CLIENT_ID + 
  16.                 "&redirect_uri=" + YOUR_REGISTERED_REDIRECT_URI + 
  17.                 "&scope=basic,netdisk&force_login=0"
  18.         try { 
  19.             url = URLEncoder.encode(url,"UTF-8"); 
  20.             url = "https://wappass.baidu.com/passport/?login&tpl=wimn&sms=1&regtype=1&u=" + 
  21.                     url + 
  22.                     "&extrajson=%7b%22src%22%3a%22se_000000%22%7d#/password_login"
  23.             return url; 
  24.         } catch (UnsupportedEncodingException e) { 
  25.             e.printStackTrace(); 
  26.             return null
  27.         } 
  28.     } 
  29.  
  30.     /** 
  31.      * @return Access_token授權鏈接 
  32.      */ 
  33.  
  34.     public String getAccessTokenUrl(String CODE){ 
  35.         return "https://openapi.baidu.com/oauth/2.0/token?grant_type=authorization_code" + 
  36.                 "&code=" + CODE + 
  37.                 "&client_id=" + YOUR_CLIENT_ID + 
  38.                 "&client_secret=" + YOUR_CLIENT_SECRET + 
  39.                 "&redirect_uri=" + YOUR_REGISTERED_REDIRECT_URI; 
  40.     } 

webview內的操作

  1. WebView webView = (WebView) findComponentById(ResourceTable.Id_login_wv); 
  2.         webView.getWebConfig().setJavaScriptPermit(true); 
  3.         webView.setWebAgent(new WebAgent(){ 
  4.             @Override 
  5.             public boolean isNeedLoadUrl(WebView webView, ResourceRequest request) { 
  6.                 if (request.getRequestUrl().toString().startsWith("https://dsttl3.cn")){ // 這個鏈接是你所填寫的 YOUR_REGISTERED_REDIRECT_URI 這里只寫了開頭,效果相同 
  7.                     String code = request.getRequestUrl().toString().split("code=")[1]; 
  8.                     String Access_token_url = new AppUtils().getAccessTokenUrl(code); 
  9.                     new Thread(new Runnable() { 
  10.                         @Override 
  11.                         public void run() { 
  12.                             try { 
  13.                                 OkHttpClient client = new OkHttpClient(); 
  14.                                 Request request = new Request.Builder().url(Access_token_url) 
  15.                                         .header("User-Agent","pan.baidu.com"
  16.                                         .build(); 
  17.                                 Call call = client.newCall(request); 
  18.                                 String accessTokenJson = call.execute().body().string(); 
  19.                                 AccessToken accessToken = new Gson().fromJson(accessTokenJson, AccessToken.class); 
  20.                                 System.out.println(accessToken.getAccess_token()); 
  21.                                 getUITaskDispatcher().asyncDispatch(new Runnable() { 
  22.                                     @Override 
  23.                                     public void run() { 
  24.                                         Preferences preferences = new DataUtils().getPreferences(getApplicationContext()); 
  25.                                         preferences.putString("token",accessToken.getAccess_token()); 
  26.                                         preferences.flush(); 
  27.                                         Intent intent1 = new Intent(); 
  28.                                         Operation operation = new Intent.OperationBuilder() 
  29.                                                 .withBundleName(MyApp.bundleName) 
  30.                                                 .withAbilityName("cn.dsttl3.tupan.Ability.IndexAbility"
  31.                                                 .build(); 
  32.                                         intent1.setOperation(operation); 
  33.                                         startAbility(intent1); 
  34.                                         terminateAbility(); //因為登錄完成后無需返回改界面,通過 terminateAbility() 方法銷毀該界面 
  35.                                     } 
  36.                                 }); 
  37.                             } catch (IOException e) { 
  38.                                 e.printStackTrace(); 
  39.                             } 
  40.                         } 
  41.                     }).start(); 
  42.                     return false
  43.                 } 
  44.                 return super.isNeedLoadUrl(webView, request); 
  45.             } 
  46.         }); 
  47.         webView.load(new AppUtils().getLoginUrl()); // 這里是上面轉換鏈接的方法 

當用戶完成登錄后,token就保存到本地了。

主頁面

使用ListContainer來顯示文件列表

#星光計劃2.0# 菟盤 - 鴻蒙版百度網盤客戶端-鴻蒙HarmonyOS技術社區

代碼有點多,不在本文介紹了,可以參考ListContainer的相關文檔

這里介紹一下防手滑操作

當該應用只有一個界面時,一不小心返回,導致應用直接退出,可以使用這個方法進行一個提醒。

  1. /** 
  2.      * 防止誤退出操作 
  3.      */ 
  4.     boolean exit = true
  5.     @Override 
  6.     public boolean onKeyDown(int keyCode, KeyEvent keyEvent) { 
  7.         if (exit){ 
  8.             new ToastDialog(getContext()).setText("再次返回退出程序").show(); 
  9.             exit = false
  10.             new Thread(new Runnable() { 
  11.                 @Override 
  12.                 public void run() { 
  13.                     Time.sleep(3000);//三秒內再次返回退出程序 
  14.                     exit=true
  15.                 } 
  16.             }).start(); 
  17.             return true
  18.         }else { 
  19.             return false
  20.         } 
  21.     } 

下載頁面

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

#星光計劃2.0# 菟盤 - 鴻蒙版百度網盤客戶端-鴻蒙HarmonyOS技術社區

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

怎么獲取該應用

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

需要修改的地方

  •  包名

config.json 下的bundleName,和cn.dsttl3.tupan目錄下MyApp.java的bundleName。不修改導致無法真機運行和頁面跳轉失敗

  • 填寫百度開放平臺應用信息

cn.dsttl3.tupan.utils 目錄下的 AppUtils.java

  1. /* 
  2.     百度應用信息 
  3.      */ 
  4.     String YOUR_CLIENT_ID = ""; //填自己的 
  5.     String YOUR_REGISTERED_REDIRECT_URI = "https://dsttl3.cn/baiduapi.html"; //需要和自己在百度網盤開放平臺填寫的相同,有個地址就行,不需要在服務器操作。當然也可以在服務器請求token后直接返回。 
  6.     String YOUR_CLIENT_SECRET = ""; //填自己的 

  簽名文件

  • 這個需要自己操作

2、下載測試版

不需要自己下載代碼進行編譯

留言或私信華為賬號,我會給你添加測試。然后通過華為官方發送的短信進行下載。

文章相關附件可以點擊下面的原文鏈接前往下載

https://harmonyos.51cto.com/resource/1586

想了解更多內容,請訪問:

51CTO和華為官方合作共建的鴻蒙技術社區

https://harmonyos.51cto.com

責任編輯:jianghua 來源: 鴻蒙社區
相關推薦

2021-12-22 09:26:04

百度網盤青春版下載速度

2012-03-29 14:22:20

云存儲

2020-04-26 08:03:40

百度網盤流量

2022-08-26 05:39:00

監控隱私

2020-02-07 11:10:07

開源技術 趨勢

2016-10-26 19:02:53

2021-05-29 07:40:20

百度網盤存儲計算機技術

2021-04-26 05:41:32

百度網盤秒傳

2012-03-30 13:51:38

2018-09-30 10:58:20

云存儲原理網盤

2025-06-06 09:42:57

2011-10-28 16:19:21

百度搜索

2020-04-16 09:38:43

百度破解開發者

2011-11-28 10:02:12

百度知道微問答移動

2021-03-11 10:20:47

百度網盤存儲計算機技術
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 中文字幕爱爱视频 | 国产福利精品一区 | 天天想天天干 | 自拍视频国产 | 亚洲另类春色偷拍在线观看 | 日一区二区三区 | 天天色综| 天天精品在线 | 蜜桃在线视频 | 国产成人影院 | 久视频在线| 亚洲 欧美 日韩在线 | 国产视频91在线 | 男人的天堂中文字幕 | 天天射中文| 国产日韩欧美在线 | 国产乱码精品1区2区3区 | 在线视频一区二区 | 亚洲www | 亚洲一区中文字幕 | 96av麻豆蜜桃一区二区 | 精品国产鲁一鲁一区二区张丽 | 精区3d动漫一品二品精区 | 国产综合网站 | 91一区二区三区 | 色妹子综合网 | 精品毛片 | 国产精品日产欧美久久久久 | 婷婷亚洲综合 | 日韩日韩日韩日韩日韩日韩日韩 | 日本久久网| 最新中文字幕久久 | 97精品超碰一区二区三区 | 在线观看www | 久久久久久久久久爱 | 色在线免费 | 亚洲综合首页 | 天天看夜夜 | 亚洲视频在线看 | 99久久国产综合精品麻豆 | 欧美福利视频一区 |