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

使用Titanium+php+mysql開發(fā)登錄注冊實例

移動開發(fā)
本文將介紹使用Titanium+php+mysql開發(fā)登錄注冊實例。Titanium是一個Web應(yīng)用程序運行環(huán)境,它支持不同的系統(tǒng)平臺(Windows、Linux、Mac),并且支持Web應(yīng)用程序?qū)Ρ镜谹PIs的訪問。在基于Titanium平臺上,用戶可以快速開發(fā)和方便的部署應(yīng)用程序,并且這些應(yīng)用程序可以使用本地APIs實現(xiàn)許多普通Web應(yīng)用程序無法完成的功能和特性。

 一、數(shù)據(jù)庫

1、使用mysql創(chuàng)建一個數(shù)據(jù)庫--titanium_users

2、新建一個表--users

3、插入一些字段

你也可以直接執(zhí)行這個SQL文件

  1. --phpMyAdminSQLDump 
  2.  
  3. --version2.10.3 
  4.  
  5. --http://www.phpmyadmin.net 
  6.  
  7. -- 
  8.  
  9. --主機:localhost 
  10.  
  11. --生成日期:2012年04月15日14:57 
  12.  
  13. --服務(wù)器版本:5.0.51 
  14.  
  15. --PHP版本:5.2.6 
  16.  
  17. SETSQL_MODE="NO_AUTO_VALUE_ON_ZERO"
  18.  
  19. -- 
  20.  
  21. --數(shù)據(jù)庫:`titanium_user` 
  22.  
  23. -- 
  24.  
  25. CREATEDATABASE`titanium_user`DEFAULTCHARACTERSETutf8COLLATEutf8_unicode_ci; 
  26.  
  27. USE`titanium_user`; 
  28.  
  29. ---------------------------------------------------------- 
  30.  
  31. -- 
  32.  
  33. --表的結(jié)構(gòu)`users` 
  34.  
  35. -- 
  36.  
  37. CREATETABLE`users`( 
  38.  
  39. `id`int(11)NOTNULLauto_increment, 
  40.  
  41. `username`varchar(255)collateutf8_unicode_ciNOTNULL, 
  42.  
  43. `password`varchar(32)collateutf8_unicode_ciNOTNULL, 
  44.  
  45. `name`varchar(255)collateutf8_unicode_ciNOTNULL, 
  46.  
  47. `email`varchar(255)collateutf8_unicode_ciNOTNULL, 
  48.  
  49. PRIMARYKEY(`id`) 
  50.  
  51. )ENGINE=MyISAMDEFAULTCHARSET=utf8COLLATE=utf8_unicode_ciCOMMENT='用戶表'AUTO_INCREMENT=8
  52.  
  53. -- 
  54.  
  55. --導(dǎo)出表中的數(shù)據(jù)`users` 
  56.  
  57. -- 
  58.  
  59. INSERTINTO`users`VALUES(1,'xiaozhang','asdasd','a4','xiaozhanga4@gmail.com'); 
  60.  
  61. INSERTINTO`users`VALUES(2,'a4','asdasd','xiaozhang','xiaozhanga4@gmail.com'); 
  62.  
  63. INSERTINTO`users`VALUES(3,'1','1','1','1@g.com'); 
  64.  
  65. INSERTINTO`users`VALUES(4,'3','3','3','3@g.cn'); 
  66.  
  67. INSERTINTO`users`VALUES(5,'5','5','5','5@g.cn'); 
  68.  
  69. INSERTINTO`users`VALUES(6,'8','8','8','8@g.cn'); 
  70.  
  71. INSERTINTO`users`VALUES(7,'9','9','9','9@g.cn'); 

二、構(gòu)建UI

創(chuàng)建titanium工程后,我們首先構(gòu)建UI,我們的界面從頂層開始,

打開app.js

第一是一個tabGroup,下來有兩個tab,每個tab分別有一個window,最后在window里添加一些文本輸入框,按鈕。

代碼如下:

  1. //thissetsthebackgroundcolorofthemasterUIView(whentherearenowindows/tabgroupsonit) 
  2.  
  3. Titanium.UI.setBackgroundColor('#000'); 
  4.  
  5. //創(chuàng)建tabGroup,因為我們的程序?qū)⑹褂脙蓚€tab 
  6.  
  7. vartabGroup=Titanium.UI.createTabGroup(); 
  8.  
  9. //創(chuàng)建登錄的window 
  10.  
  11. varlogin=Titanium.UI.createWindow({ 
  12.  
  13. title:'登錄', 
  14.  
  15. tabBarHidden:true, 
  16.  
  17. url:'login.js' 
  18.  
  19. }); 
  20.  
  21. //創(chuàng)建登錄窗口的tab 
  22.  
  23. varloginTab=Titanium.UI.createTab({ 
  24.  
  25. title:"登錄", 
  26.  
  27. window:login 
  28.  
  29. }); 
  30.  
  31. //創(chuàng)建注冊的window 
  32.  
  33. varaccount=Titanium.UI.createWindow({ 
  34.  
  35. title:'注冊', 
  36.  
  37. url:'account.js' 
  38.  
  39. }); 
  40.  
  41. //創(chuàng)建注冊窗口的tab 
  42.  
  43. varaccountTab=Titanium.UI.createTab({ 
  44.  
  45. title:'注冊', 
  46.  
  47. window:account 
  48.  
  49. }); 
  50.  
  51. //添加登錄的tab到tabGroup 
  52.  
  53. tabGroup.addTab(loginTab); 
  54.  
  55. //添加注冊的tab到tabGroup 
  56.  
  57. tabGroup.addTab(accountTab); 
  58.  
  59. //打開tabGroup 
  60.  
  61. tabGroup.open(); 

創(chuàng)建登錄接口:

創(chuàng)建login.js

代碼如下:

  1. //創(chuàng)建win對象指向當前窗口即登錄窗口 
  2.  
  3. varwin=Titanium.UI.currentWindow; 
  4.  
  5. //創(chuàng)建用戶名文本輸入框 
  6.  
  7. varusername=Titanium.UI.createTextField({ 
  8.  
  9. color:'#336699', 
  10.  
  11. top:10, 
  12.  
  13. left:10, 
  14.  
  15. width:300, 
  16.  
  17. height:40, 
  18.  
  19. hintText:'用戶名', 
  20.  
  21. keyboardType:Titanium.UI.KEYBOARD_DEFAULT, 
  22.  
  23. returnKeyType:Titanium.UI.RETURNKEY_DEFAULT, 
  24.  
  25. borderStyle:Titanium.UI.INPUT_BORDERSTYLE_ROUNDED 
  26.  
  27. }); 
  28.  
  29. //添加用戶名文本輸入框到當前window 
  30.  
  31. win.add(username); 
  32.  
  33. //創(chuàng)建密碼輸入框 
  34.  
  35. varpassword=Titanium.UI.createTextField({ 
  36.  
  37. color:'#336699', 
  38.  
  39. top:60, 
  40.  
  41. left:10, 
  42.  
  43. width:300, 
  44.  
  45. height:40, 
  46.  
  47. hintText:'密碼', 
  48.  
  49. passwordMask:true, 
  50.  
  51. keyboardType:Titanium.UI.KEYBOARD_DEFAULT, 
  52.  
  53. returnKeyType:Titanium.UI.RETURNKEY_DEFAULT, 
  54.  
  55. borderStyle:Titanium.UI.INPUT_BORDERSTYLE_ROUNDED 
  56.  
  57. }); 
  58.  
  59. //添加密碼輸入框到當前窗口 
  60.  
  61. win.add(password); 
  62.  
  63. //創(chuàng)建登錄按鈕 
  64.  
  65. varloginBtn=Titanium.UI.createButton({ 
  66.  
  67. title:'登錄', 
  68.  
  69. top:110, 
  70.  
  71. width:90, 
  72.  
  73. height:35, 
  74.  
  75. borderRadius:1, 
  76.  
  77. font:{fontFamily:'Arial',fontWeight:'bold',fontSize:14} 
  78.  
  79. }); 
  80.  
  81. //添加登錄按鈕到當前窗口 
  82.  
  83. win.add(loginBtn); 

創(chuàng)建account.js

代碼如下:

  1. //創(chuàng)建win對象指向當前窗口即登錄窗口 
  2.  
  3. varwin=Titanium.UI.currentWindow; 
  4.  
  5. //創(chuàng)建垂直滾動的視圖 
  6.  
  7. varscrollView=Titanium.UI.createScrollView({ 
  8.  
  9. contentWidth:'auto', 
  10.  
  11. contentHeight:'auto', 
  12.  
  13. top:0, 
  14.  
  15. showVerticalScrollIndicator:true, 
  16.  
  17. showHorizontalScrollIndicator:false 
  18.  
  19. }); 
  20.  
  21. //添加垂直滾動的視圖到當前窗口 
  22.  
  23. win.add(scrollView); 
  24.  
  25. //創(chuàng)建用戶名輸入框 
  26.  
  27. varusername=Titanium.UI.createTextField({ 
  28.  
  29. color:'#336699', 
  30.  
  31. top:10, 
  32.  
  33. left:10, 
  34.  
  35. width:300, 
  36.  
  37. height:40, 
  38.  
  39. hintText:'用戶名', 
  40.  
  41. keyboardType:Titanium.UI.KEYBOARD_DEFAULT, 
  42.  
  43. returnKeyType:Titanium.UI.RETURNKEY_DEFAULT, 
  44.  
  45. borderStyle:Titanium.UI.INPUT_BORDERSTYLE_ROUNDED 
  46.  
  47. }); 
  48.  
  49. //添加用戶名輸入框到垂直滾動的視圖 
  50.  
  51. scrollView.add(username); 
  52.  
  53. //創(chuàng)建密碼輸入框 
  54.  
  55. varpassword1=Titanium.UI.createTextField({ 
  56.  
  57. color:'#336699', 
  58.  
  59. top:60, 
  60.  
  61. left:10, 
  62.  
  63. width:300, 
  64.  
  65. height:40, 
  66.  
  67. hintText:'密碼', 
  68.  
  69. passwordMask:true, 
  70.  
  71. keyboardType:Titanium.UI.KEYBOARD_DEFAULT, 
  72.  
  73. returnKeyType:Titanium.UI.RETURNKEY_DEFAULT, 
  74.  
  75. borderStyle:Titanium.UI.INPUT_BORDERSTYLE_ROUNDED 
  76.  
  77. }); 
  78.  
  79. //添加密碼輸入框到垂直滾動的視圖 
  80.  
  81. scrollView.add(password1); 
  82.  
  83. //創(chuàng)建確認密碼輸入框 
  84.  
  85. varpassword2=Titanium.UI.createTextField({ 
  86.  
  87. color:'#336699', 
  88.  
  89. top:110, 
  90.  
  91. left:10, 
  92.  
  93. width:300, 
  94.  
  95. height:40, 
  96.  
  97. hintText:'確認密碼', 
  98.  
  99. passwordMask:true, 
  100.  
  101. keyboardType:Titanium.UI.KEYBOARD_DEFAULT, 
  102.  
  103. returnKeyType:Titanium.UI.RETURNKEY_DEFAULT, 
  104.  
  105. borderStyle:Titanium.UI.INPUT_BORDERSTYLE_ROUNDED 
  106.  
  107. }); 
  108.  
  109. //添加確認密碼輸入框到垂直滾動的視圖 
  110.  
  111. scrollView.add(password2); 
  112.  
  113. //創(chuàng)建姓名輸入框 
  114.  
  115. varnames=Titanium.UI.createTextField({ 
  116.  
  117. color:'#336699', 
  118.  
  119. top:160, 
  120.  
  121. left:10, 
  122.  
  123. width:300, 
  124.  
  125. height:40, 
  126.  
  127. hintText:'姓名', 
  128.  
  129. keyboardType:Titanium.UI.KEYBOARD_DEFAULT, 
  130.  
  131. returnKeyType:Titanium.UI.RETURNKEY_DEFAULT, 
  132.  
  133. borderStyle:Titanium.UI.INPUT_BORDERSTYLE_ROUNDED 
  134.  
  135. }); 
  136.  
  137. //添加姓名輸入框到垂直滾動的視圖 
  138.  
  139. scrollView.add(names); 
  140.  
  141. //創(chuàng)建email輸入框 
  142.  
  143. varemail=Titanium.UI.createTextField({ 
  144.  
  145. color:'#336699', 
  146.  
  147. top:210, 
  148.  
  149. left:10, 
  150.  
  151. width:300, 
  152.  
  153. height:40, 
  154.  
  155. hintText:'email', 
  156.  
  157. keyboardType:Titanium.UI.KEYBOARD_DEFAULT, 
  158.  
  159. returnKeyType:Titanium.UI.RETURNKEY_DEFAULT, 
  160.  
  161. borderStyle:Titanium.UI.INPUT_BORDERSTYLE_ROUNDED 
  162.  
  163. }); 
  164.  
  165. //添加email輸入框到垂直滾動的視圖 
  166.  
  167. scrollView.add(email); 
  168.  
  169. //創(chuàng)建注冊按鈕 
  170.  
  171. varcreateBtn=Titanium.UI.createButton({ 
  172.  
  173. title:'注冊', 
  174.  
  175. top:260, 
  176.  
  177. width:130, 
  178.  
  179. height:35, 
  180.  
  181. borderRadius:1, 
  182.  
  183. font:{fontFamily:'Arial',fontWeight:'bold',fontSize:14} 
  184.  
  185. }); 
  186.  
  187. //添加注冊按鈕到垂直滾動的視圖 
  188.  
  189. scrollView.add(createBtn); 

最終效果如下:

三、添加事件

UI構(gòu)建完成后,我們將為登錄注冊按鈕分別添加點擊事件,完成登錄注冊功能

打開login.js

在代碼的最后面加上以下代碼:

  1. //創(chuàng)建HTTPClinet對象 
  2.  
  3. varloginReq=Titanium.Network.createHTTPClient(); 
  4.  
  5. //登錄按鈕事件--打開遠程的邏輯操作,發(fā)送登錄數(shù)據(jù)給遠程文件進行判斷處理 
  6.  
  7. loginBtn.addEventListener('click',function(e) 
  8.  
  9.  
  10. if(username.value!=''&&password.value!='') 
  11.  
  12.  
  13. loginReq.open("POST","http://10.0.2.2:8080/post_auth.php"); 
  14.  
  15. varparams={ 
  16.  
  17. username:username.value, 
  18.  
  19. password:password.value 
  20.  
  21. }; 
  22.  
  23. loginReq.send(params); 
  24.  
  25.  
  26. else 
  27.  
  28.  
  29. alert("Username/Passwordarerequired"); 
  30.  
  31.  
  32. }); 
  33.  
  34. //接收遠程返回的數(shù)據(jù)并使用彈出框顯示信息 
  35.  
  36. loginReq.onload=function() 
  37.  
  38.  
  39. varjson=this.responseText; 
  40.  
  41. varresponse=JSON.parse(json); 
  42.  
  43. if(response.logged==true) 
  44.  
  45.  
  46. alert("歡迎"+response.name+".你的Email是:"+response.email); 
  47.  
  48.  
  49. else 
  50.  
  51.  
  52. alert(response.message); 
  53.  
  54.  
  55. }; 

打開account.js文件

在最后的代碼加上以下代碼:

  1. //定義一個對象用來存儲提交數(shù)據(jù)結(jié)果 
  2.  
  3. vartestresults; 
  4.  
  5. //創(chuàng)建驗證email的函數(shù) 
  6.  
  7. functioncheckemail(emailAddress) 
  8.  
  9.  
  10. varstr=emailAddress
  11.  
  12. varfilter=/^([A-Za-z0-9_\-\.])+\@([A-Za-z0-9_\-\.])+\.([A-Za-z]{2,4})$/; 
  13.  
  14. if(filter.test(str)) 
  15.  
  16.  
  17. testresults=true
  18.  
  19.  
  20. else 
  21.  
  22.  
  23. testresults=false
  24.  
  25.  
  26. return(testresults); 
  27.  
  28. }; 
  29.  
  30. //創(chuàng)建httpclient對象 
  31.  
  32. varcreateReq=Titanium.Network.createHTTPClient(); 
  33.  
  34. //接收返回的數(shù)據(jù) 
  35.  
  36. createReq.onload=function() 
  37.  
  38.  
  39. if(this.responseText=="插入失敗"||this.responseText=="用戶名或電子郵箱已經(jīng)存在") 
  40.  
  41.  
  42. createBtn.enabled=true
  43.  
  44. createBtn.opacity=1
  45.  
  46. alert(this.responseText); 
  47.  
  48.  
  49. else 
  50.  
  51.  
  52. varalertDialog=Titanium.UI.createAlertDialog({ 
  53.  
  54. title:'提示', 
  55.  
  56. message:this.responseText, 
  57.  
  58. buttonNames:['確定'] 
  59.  
  60. }); 
  61.  
  62. alertDialog.show(); 
  63.  
  64. alertDialog.addEventListener('click',function(e) 
  65.  
  66.  
  67. win.tabGroup.setActiveTab(0); 
  68.  
  69. }); 
  70.  
  71.  
  72. }; 
  73.  
  74. //按鈕事件函數(shù) 
  75.  
  76. createBtn.addEventListener('click',function(e) 
  77.  
  78.  
  79. if(username.value!=''&&password1.value!=''&&password2.value!=''&&names.value!=''&&email.value!='') 
  80.  
  81.  
  82. if(password1.value!=password2.value) 
  83.  
  84.  
  85. alert("密碼不匹配"); 
  86.  
  87.  
  88. else 
  89.  
  90.  
  91. if(!checkemail(email.value)) 
  92.  
  93.  
  94. alert("請輸入有效的電子郵箱"); 
  95.  
  96.  
  97. else 
  98.  
  99.  
  100. createBtn.enabled=false
  101.  
  102. createBtn.opacity=0.3; 
  103.  
  104. createReq.open("POST","http://10.0.2.2:8080/post_register.php"); 
  105.  
  106. varparams={ 
  107.  
  108. username:username.value, 
  109.  
  110. password:password1.value, 
  111.  
  112. names:names.value, 
  113.  
  114. email:email.value 
  115.  
  116. }; 
  117.  
  118. createReq.send(params); 
  119.  
  120.  
  121.  
  122.  
  123. else 
  124.  
  125.  
  126. alert("所有字段已經(jīng)提交"); 
  127.  
  128.  
  129. }); 

四、創(chuàng)建后臺邏輯處理文件

我們使用的是PHP,請看

創(chuàng)建登錄處理文件post_auth.php放在你的服務(wù)器里:

  1. //定義數(shù)據(jù)庫連接 
  2.  
  3. $con=mysql_connect('localhost','root','root'); 
  4.  
  5. if(!$con) 
  6.  
  7.  
  8. echo"Failedtomakeconnection."; 
  9.  
  10. exit; 
  11.  
  12.  
  13. //Selectthedatabase.Enterthenameofyourdatabase(notthesameasthetablename) 
  14.  
  15. $db=mysql_select_db('titanium_user'); 
  16.  
  17. if(!$db) 
  18.  
  19.  
  20. echo"Failedtoselectdb."; 
  21.  
  22. exit; 
  23.  
  24.  
  25. //$_POST['username']and$_POST['password']aretheparamnameswesentinourclickeventinlogin.js 
  26.  
  27. $username=$_POST['username']; 
  28.  
  29. $password=$_POST['password']; 
  30.  
  31. //Selecteveythingfromtheuserstablewhereusernamefield==theusernamewepostedandpasswordfield==thepasswordweposted 
  32.  
  33. $sql="SELECT*FROMusersWHEREusername='".$username."'ANDpassword='".$password."'"; 
  34.  
  35. $query=mysql_query($sql); 
  36.  
  37. //Ifwefindamatch,createanarrayofdata,json_encodeitandechoitout 
  38.  
  39. if(mysql_num_rows($query)>0) 
  40.  
  41.  
  42. $row=mysql_fetch_array($query); 
  43.  
  44. $response=array
  45.  
  46. 'logged'=>true, 
  47.  
  48. 'name'=>$row['name'], 
  49.  
  50. 'email'=>$row['email'] 
  51.  
  52. ); 
  53.  
  54. echojson_encode($response); 
  55.  
  56.  
  57. else 
  58.  
  59.  
  60. //Elsetheusernameand/orpasswordwasinvalid!Createanarray,json_encodeitandechoitout 
  61.  
  62. $response=array
  63.  
  64. 'logged'=>false, 
  65.  
  66. 'message'=>'InvalidUsernameand/orPassword' 
  67.  
  68. ); 
  69.  
  70. echojson_encode($response); 
  71.  
  72.  
  73. ?> 

創(chuàng)建注冊處理文件

  1. post_register.php 
  2.  
  3. $con=mysql_connect('localhost','root','root'); 
  4.  
  5. if(!$con) 
  6.  
  7.  
  8. echo"Failedtomakeconnection."; 
  9.  
  10. exit; 
  11.  
  12.  
  13. $db=mysql_select_db('titanium_user'); 
  14.  
  15. if(!$db) 
  16.  
  17.  
  18. echo"Failedtoselectdb."; 
  19.  
  20. exit; 
  21.  
  22.  
  23. $username=$_POST['username']; 
  24.  
  25. $password=$_POST['password']; 
  26.  
  27. $names=$_POST['names']; 
  28.  
  29. $email=$_POST['email']; 
  30.  
  31. $sql="SELECTusername,emailFROMusersWHEREusername='".$username."'ORemail='".$email."'"; 
  32.  
  33. $query=mysql_query($sql); 
  34.  
  35. if(mysql_num_rows($query)>0) 
  36.  
  37.  
  38. echo"Thatusernameoremailalreadyexists"; 
  39.  
  40.  
  41. else 
  42.  
  43.  
  44. $insert="INSERTINTOusers(username,password,name,email)VALUES('".$username."','".$password."','".$names."','".$email."')"; 
  45.  
  46. $query=mysql_query($insert); 
  47.  
  48. if($query) 
  49.  
  50.  
  51. echo"Thanksforregistering.Youmaynowlogin."; 
  52.  
  53.  
  54. else 
  55.  
  56.  
  57. echo"Insertfailed"; 
  58.  
  59.  
  60.  
  61. ?> 

OK!再次運行我們的APP,看最后的效果吧

注冊成功界面

注冊成功界面

責任編輯:佚名 來源: 移動Web開發(fā)社區(qū)
相關(guān)推薦

2012-04-20 11:07:12

Titanium

2012-04-19 12:58:26

TitaniumJSS

2012-04-19 17:16:32

Titanium實例代碼分析

2012-04-19 16:55:48

Titanium視頻jQuery Mobi

2012-04-19 16:17:24

TitaniumAndroidtabbar

2012-04-19 13:55:19

TitaniumTiMVC

2012-05-17 09:09:05

Titanium單元測試

2012-04-19 16:22:12

TitaniumTabGroup

2012-05-18 10:08:56

TitaniumAndroid

2012-05-18 11:29:55

Titaniumpros

2012-05-18 11:34:03

Titaniumcons

2012-06-13 10:36:44

PHP

2012-05-18 11:16:42

@Kroll注解詳解TitaniumAndroid模塊

2012-05-25 13:12:57

TitaniumMobile WebHTML5

2012-02-13 14:41:50

Titanium架構(gòu)分析

2009-06-10 16:19:33

Eclipse開發(fā)PH

2012-05-18 10:52:20

TitaniumAndroid模塊自定義View模塊

2012-04-19 17:42:46

Titanium布局

2012-02-09 16:45:41

2010-06-01 16:50:29

MySQL存儲過程
點贊
收藏

51CTO技術(shù)棧公眾號

主站蜘蛛池模板: 欧美久久一区 | 成人午夜在线观看 | 日本不卡视频在线播放 | 99久久久99久久国产片鸭王 | 天天躁日日躁xxxxaaaa | 91电影在线| 欧美成人免费在线视频 | 久久高清 | 久久er精品 | 国产精品综合久久 | 一区二区在线观看免费视频 | 久久成人综合 | 欧美一区二区在线播放 | 日韩成人免费中文字幕 | 亚洲视频在线看 | 日韩一区在线观看视频 | 国产精品资源在线 | 亚洲国产精品一区二区www | 亚洲www啪成人一区二区 | 一区二区三区视频在线 | 91精品国产91久久久久久最新 | 黄网站涩免费蜜桃网站 | 狠狠操狠狠干 | 一二区视频 | 欧美乱人伦视频 | 在线观看亚洲专区 | 精品国产一区二区三区久久久四川 | www.久久99| 美人の美乳で授乳プレイ | 中文字幕视频在线观看 | 一区二区日韩 | 91在线精品一区二区 | 国产精品爱久久久久久久 | 欧美a在线 | 国产成人精品一区二区三 | 精品久久精品 | 亚洲成人一区二区三区 | 久久精品日产第一区二区三区 | 亚洲超碰在线观看 | 欧美日韩专区 | 在线不卡视频 |