鸿蒙的JS开发部模式14:tabs组件通过Python远程服务构建项目一

 想了解更多内容,请访问:

网站建设哪家好,找创新互联!专注于网页设计、网站建设、微信开发、成都微信小程序、集团企业网站建设等服务项目。为回馈新老客户创新互联还提供了兴海免费建站欢迎大家使用!

和华为官方合作共建的鸿蒙技术社区

https://harmonyos./#zz

1.DevEco Studio的最新版开发工具新增预览和调试真的很好用.通过对鸿蒙的tabs和tab-bar组件,tab-content组件动态生成,通过fetch请求python flask服务构建,效果图如下:

2.python的代码如下,提供了远程的web服务,同时通过反向代理服务器nginx提供图片等静态资源的服务:

 
 
 
 
  1. from  flask  import Flask 
  2. from flask  import jsonify 
  3. from  flask  import   request 
  4. import json 
  5.  
  6.  
  7. app=Flask(__name__) 
  8.  
  9.  
  10. @app.route("/data") 
  11. def  execData(): 
  12.     print("用户发起data的请求,执行execData方法") 
  13.  
  14.     data1=("许金扉","李永毅","昌立昊") 
  15.  
  16.     return jsonify(data1) 
  17.  
  18. @app.route("/querybyname",methods=["POST"]) 
  19. def  queryByName(): 
  20.     if request.method == 'POST': 
  21.        print("用户发起querybyname的请求,执行queryByName方法") 
  22.        #data2={"许金扉":"一个女学生","李永毅":"一个扬州的男学生","昌立昊":"一个南京的男学生"} 
  23.        data2 = {"许金扉":{"text":"女学生","img":"common/customer.png"}, 
  24.                 "李永毅": {"text":"男学生","img":"common/emp.png"}, "昌立昊": {"text":"男学生","img":"common/emp.png"}} 
  25.        # name=request.form.get("cname") 
  26.        # print(name) 
  27.  
  28.        info=request.get_data(as_text=True) 
  29.        print(info) 
  30.        print(type(info)) 
  31.        name=json.loads(info).get("cname") 
  32.        info1=data2.get(name) 
  33.  
  34.        return jsonify(info1) 
  35.  
  36.  
  37. @app.route("/loadmenu",methods=["GET"]) 
  38. def  loadMenu(): 
  39.     if  request.method=="GET": 
  40.         print("加载首页菜单") 
  41.  
  42.         menudatas=[{"text":"首页","selectIcon":"http://lixin.free.idcfengye.com/images/ones.png", 
  43.                     "icon":"http://lixin.free.idcfengye.com/images/oneu.png"}, 
  44.                    {"text":"分类","selectIcon":"http://lixin.free.idcfengye.com/images/cs.png", 
  45.                     "icon":"http://lixin.free.idcfengye.com/images/cu.png"}, 
  46.                    {"text":"阅读","selectIcon":"http://lixin.free.idcfengye.com/images/rs.png", 
  47.                     "icon":"http://lixin.free.idcfengye.com/images/ru.png"}, 
  48.                    {"text":"我的","selectIcon":"http://lixin.free.idcfengye.com/images/mys.png", 
  49.                     "icon":"http://lixin.free.idcfengye.com/images/myu.png"}] 
  50.  
  51.  
  52.         return  jsonify(menudatas) 
  53.  
  54.  
  55.  
  56.  
  57.  
  58.  
  59. if  __name__=="__main__": 
  60.     app.run(debug=True,port=8500) 

 3.鸿蒙的远程请求python flask服务,需要使用内网穿透工具

4.同时启动nginx服务和ngrok的内网穿透

5.鸿蒙的业务逻辑层通过配置网络权限和域名安全审核

5.鸿蒙js的业务逻辑层代码

 
 
 
 
  1. import fetch from '@system.fetch'; 
  2. import prompt from '@system.prompt'; 
  3. export default { 
  4.     data: { 
  5.         title: 'World', 
  6.         currentIndex:0, 
  7.         menudatas:[] 
  8.     }, 
  9.     onInit(){ 
  10.  
  11.  
  12.  
  13.         fetch.fetch({ 
  14.            url:"http://aeawqk.natappfree.cc/loadmenu", 
  15.             method:"GET", 
  16.             responseType:"json", 
  17.             success:(resp)=> 
  18.             { 
  19.                 this.menudatas=JSON.parse(resp.data); 
  20.  
  21.  
  22.             } 
  23.  
  24.  
  25.         }); 
  26.     }, 
  27.     onShow(){ 
  28.         prompt.showToast({ 
  29.             message:"正在加载数据,请稍后", 
  30.             duration:5000 
  31.  
  32.         }); 
  33.     }, 
  34.     changeview(e) 
  35.     { 
  36.         let  cIndex=e.index; 
  37.  
  38.         this.currentIndex=cIndex; 
  39.  
  40.  
  41.     } 

 6.视图层代码

 
 
 
 
  1.  
  2.      
  3.          
  4.              
  5.                  
  6.                      
  7.                     {{$item.text}} 
  8.                 
 
  •              
  •          
  •  
  •          
  •              
  •  
  •             
  •  
  •              
  •  
  •             
  •  
  •              
  •  
  •              
  •              
  •  
  •              
  •  
  •          
  •  
  •      
  •  
  • 7.样式代码

     
     
     
     
    1. .container { 
    2.     display: flex; 
    3.     flex-direction: column; 
    4.     width: 100%; 
    5. .tabs{ 
    6.     width: 100%; 
    7. .tab-bar{ 
    8.     width: 100%; 
    9.     height: 12%; 
    10.     border-top: 10px  solid  silver; 
    11.     position: fixed; 
    12.     left: 0px; 
    13.     bottom: 0px; 
    14.     z-index:999; 
    15.     background-color: snow; 
    16.  
    17. .menuview{ 
    18.     width: 100%; 
    19.     height: 100%; 
    20. /**border: 5px  solid  black;**/ 
    21.     display: flex; 
    22.     flex-direction: column; 
    23.     align-items: center; 
    24.     padding: 15px; 
    25. .cimg{ 
    26.     width: 70px; 
    27.     height: 70px; 
    28. .tab-content{ 
    29.     width: 100%; 
    30.  
    31. .oneview{ 
    32.     width: 100%; 
    33.     height: 100%; 
    34.     background-color: palegreen; 
    35. .twoview{ 
    36.     width: 100%; 
    37.     height: 100%; 
    38.     background-color: palegoldenrod; 
    39. .threeview{ 
    40.     width: 100%; 
    41.     height: 100%; 
    42.     background-color: papayawhip; 
    43. .fourview{ 
    44.     width: 100%; 
    45.     height: 100%; 
    46.     background-color: powderblue; 
    47. .stxt{ 
    48.     color: black; 
    49. .dtxt{ 
    50.     color: silver; 

     8.底部菜单栏通过三元运算符,进行切换,效果如下:

    想了解更多内容,请访问:

    和华为官方合作共建的鸿蒙技术社区

    https://harmonyos./#zz

    标题名称:鸿蒙的JS开发部模式14:tabs组件通过Python远程服务构建项目一
    标题路径:http://www.shufengxianlan.com/qtweb/news38/398338.html

    网站建设、网络推广公司-创新互联,是专注品牌与效果的网站制作,网络营销seo公司;服务项目有等

    广告

    声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 创新互联

    猜你还喜欢下面的内容

    Google知识

    行业网站建设