OAuth錛堝紑鏀炬巿鏉冿級鏄竴涓?a class="new" title="寮鏀炬爣鍑? style="text-decoration: none; color: #ba0000; background-image: none; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: initial; background-position: initial initial; background-repeat: initial initial; ">寮鏀炬爣鍑?/a>錛屽厑璁哥敤鎴瘋絎笁鏂瑰簲鐢ㄨ闂鐢ㄦ埛鍦ㄦ煇涓緗戠珯涓婂瓨鍌ㄧ殑縐佸瘑鐨勮祫婧愶紙濡傜収鐗囷紝瑙嗛錛岃仈緋諱漢鍒楄〃錛夛紝鑰屾棤闇灝嗙敤鎴峰悕鍜屽瘑鐮佹彁渚涚粰絎笁鏂瑰簲鐢ㄣ?/p>
OAuth鍏佽鐢ㄦ埛鎻愪緵涓涓護鐗岋紝鑰屼笉鏄敤鎴峰悕鍜屽瘑鐮佹潵璁塊棶浠栦滑瀛樻斁鍦ㄧ壒瀹氭湇鍔℃彁渚涜呯殑鏁版嵁銆傛瘡涓涓護鐗屾巿鏉冧竴涓壒瀹氱殑緗戠珯錛堜緥濡傦紝瑙嗛緙栬緫緗戠珯)鍦ㄧ壒瀹氱殑鏃舵錛堜緥濡傦紝鎺ヤ笅鏉ョ殑2灝忔椂鍐咃級鍐呰闂壒瀹氱殑璧勬簮錛堜緥濡備粎浠呮槸鏌愪竴鐩稿唽涓殑瑙嗛錛夈傝繖鏍鳳紝OAuth鍏佽鐢ㄦ埛鎺堟潈絎笁鏂圭綉绔欒闂粬浠瓨鍌ㄥ湪鍙﹀鐨勬湇鍔℃彁渚涜呬笂鐨勪俊鎭紝鑰屼笉闇瑕佸垎浜粬浠殑璁塊棶璁稿彲鎴栦粬浠暟鎹殑鎵鏈夊唴瀹廣?/p>
浣跨敤OAuth榪涜璁よ瘉鍜屾巿鏉冪殑榪囩▼濡備笅鎵紺?
OAuth 2.0鏄疧Auth鍗忚鐨勪笅涓鐗堟湰錛屼絾涓嶅悜鍚庡吋瀹筄Auth 1.0銆?OAuth 2.0鍏蟲敞瀹㈡埛绔紑鍙戣呯殑綆鏄撴э紝鍚屾椂涓篧eb搴旂敤錛屾闈㈠簲鐢ㄥ拰鎵嬫満錛屽拰璧峰眳瀹よ澶囨彁渚涗笓闂ㄧ殑璁よ瘉嫻佺▼銆傝鑼冭繕鍦↖ETF OAuth宸ヤ綔緇勭殑寮鍙戜腑 錛屾寜鐓?a class="new" title="Eran Hammer-Lahav" style="text-decoration: none; color: #ba0000; background-image: none; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: initial; background-position: initial initial; background-repeat: initial initial; ">Eran Hammer-Lahav鐨勮娉曪紝OAuth灝嗕簬2010騫存湯瀹屾垚銆?/p>
Facebook鐨勬柊鐨凣raph API鍙敮鎸丱Auth 2.0錛孏oogle鍦?font class="Apple-style-span" color="#0645ad">2011騫?鏈?/span>浜﹀浣圙oogle API灝峅Auth 2.0鐨勬敮鎻淬?/p>
鍚嶇О
REST錛屽嵆Representational State Transfer鐨勭緝鍐欍傛垜瀵硅繖涓瘝緇勭殑緲昏瘧鏄?琛ㄧ幇灞傜姸鎬佽漿鍖?銆?/p>
濡傛灉涓涓灦鏋勭鍚圧EST鍘熷垯錛屽氨縐板畠涓篟ESTful鏋舵瀯銆?/p>
瑕佺悊瑙ESTful鏋舵瀯錛屾渶濂界殑鏂規硶灝辨槸鍘葷悊瑙epresentational State Transfer榪欎釜璇嶇粍鍒板簳鏄粈涔堟剰鎬濓紝瀹冪殑姣忎竴涓瘝浠h〃浜嗕粈涔堟兜涔夈?/strong>濡傛灉浣犳妸榪欎釜鍚嶇О鎼炴噦浜嗭紝涔熷氨涓嶉毦浣撲細REST鏄竴縐嶄粈涔堟牱鐨勮璁°?/p> 璧勬簮錛圧esources錛?/strong> REST鐨勫悕縐?琛ㄧ幇灞傜姸鎬佽漿鍖?涓紝鐪佺暐浜嗕富璇?琛ㄧ幇灞?鍏跺疄鎸囩殑鏄?璧勬簮"錛圧esources錛夌殑"琛ㄧ幇灞?銆?/p> 鎵璋?璧勬簮"錛屽氨鏄綉緇滀笂鐨勪竴涓疄浣擄紝鎴栬呰鏄綉緇滀笂鐨勪竴涓叿浣撲俊鎭?/strong>瀹冨彲浠ユ槸涓孌墊枃鏈佷竴寮犲浘鐗囥佷竴棣栨瓕鏇層佷竴縐嶆湇鍔★紝鎬諱箣灝辨槸涓涓叿浣撶殑瀹炲湪銆備綘鍙互鐢ㄤ竴涓猆RI錛堢粺涓璧勬簮瀹氫綅絎︼級鎸囧悜瀹冿紝姣忕璧勬簮瀵瑰簲涓涓壒瀹氱殑URI銆傝鑾峰彇榪欎釜璧勬簮錛岃闂畠鐨刄RI灝卞彲浠ワ紝鍥犳URI灝辨垚浜嗘瘡涓涓祫婧愮殑鍦板潃鎴栫嫭涓鏃犱簩鐨勮瘑鍒銆?/p> 鎵璋?涓婄綉"錛屽氨鏄笌浜掕仈緗戜笂涓緋誨垪鐨?璧勬簮"浜掑姩錛岃皟鐢ㄥ畠鐨刄RI銆?/p> 琛ㄧ幇灞傦紙Representation錛?/strong> "璧勬簮"鏄竴縐嶄俊鎭疄浣擄紝瀹冨彲浠ユ湁澶氱澶栧湪琛ㄧ幇褰㈠紡銆?strong style="font-weight: 800; ">鎴戜滑鎶?璧勬簮"鍏蜂綋鍛堢幇鍑烘潵鐨勫艦寮忥紝鍙仛瀹冪殑"琛ㄧ幇灞?錛圧epresentation錛夈?/strong> 姣斿錛屾枃鏈彲浠ョ敤txt鏍煎紡琛ㄧ幇錛屼篃鍙互鐢℉TML鏍煎紡銆乆ML鏍煎紡銆丣SON鏍煎紡琛ㄧ幇錛岀敋鑷沖彲浠ラ噰鐢ㄤ簩榪涘埗鏍煎紡錛涘浘鐗囧彲浠ョ敤JPG鏍煎紡琛ㄧ幇錛屼篃鍙互鐢≒NG鏍煎紡琛ㄧ幇銆?/p> URI鍙唬琛ㄨ祫婧愮殑瀹炰綋錛屼笉浠h〃瀹冪殑褰㈠紡銆備弗鏍煎湴璇達紝鏈変簺緗戝潃鏈鍚庣殑".html"鍚庣紑鍚嶆槸涓嶅繀瑕佺殑錛屽洜涓鴻繖涓悗緙鍚嶈〃紺烘牸寮忥紝灞炰簬"琛ㄧ幇灞?鑼冪暣錛岃孶RI搴旇鍙唬琛?璧勬簮"鐨勪綅緗傚畠鐨勫叿浣撹〃鐜板艦寮忥紝搴旇鍦℉TTP璇鋒眰鐨勫ご淇℃伅涓敤Accept鍜孋ontent-Type瀛楁鎸囧畾錛岃繖涓や釜瀛楁鎵嶆槸瀵?琛ㄧ幇灞?鐨勬弿榪般?/p> 鐘舵佽漿鍖栵紙State Transfer錛?/strong> 璁塊棶涓涓綉绔欙紝灝變唬琛ㄤ簡瀹㈡埛绔拰鏈嶅姟鍣ㄧ殑涓涓簰鍔ㄨ繃紼嬨傚湪榪欎釜榪囩▼涓紝鍔垮繀娑夊強鍒版暟鎹拰鐘舵佺殑鍙樺寲銆?/p> 浜掕仈緗戦氫俊鍗忚HTTP鍗忚錛屾槸涓涓棤鐘舵佸崗璁傝繖鎰忓懗鐫錛屾墍鏈夌殑鐘舵侀兘淇濆瓨鍦ㄦ湇鍔″櫒绔傚洜姝わ紝濡傛灉瀹㈡埛绔兂瑕佹搷浣滄湇鍔″櫒錛屽繀欏婚氳繃鏌愮鎵嬫錛岃鏈嶅姟鍣ㄧ鍙戠敓"鐘舵佽漿鍖?錛圫tate Transfer錛夈傝岃繖縐嶈漿鍖栨槸寤虹珛鍦ㄨ〃鐜板眰涔嬩笂鐨勶紝鎵浠ュ氨鏄?琛ㄧ幇灞傜姸鎬佽漿鍖?銆?/strong> 瀹㈡埛绔敤鍒扮殑鎵嬫錛屽彧鑳芥槸HTTP鍗忚銆傚叿浣撴潵璇達紝灝辨槸HTTP鍗忚閲岄潰錛屽洓涓〃紺烘搷浣滄柟寮忕殑鍔ㄨ瘝錛欸ET銆丳OST銆丳UT銆丏ELETE銆傚畠浠垎鍒搴斿洓縐嶅熀鏈搷浣滐細GET鐢ㄦ潵鑾峰彇璧勬簮錛孭OST鐢ㄦ潵鏂板緩璧勬簮錛堜篃鍙互鐢ㄤ簬鏇存柊璧勬簮錛夛紝PUT鐢ㄦ潵鏇存柊璧勬簮錛孌ELETE鐢ㄦ潵鍒犻櫎璧勬簮銆?/strong> 緇艱堪 緇煎悎涓婇潰鐨勮В閲婏紝鎴戜滑鎬葷粨涓涓嬩粈涔堟槸RESTful鏋舵瀯錛?/p> 銆銆錛?錛夋瘡涓涓猆RI浠h〃涓縐嶈祫婧愶紱 銆銆錛?錛夊鎴風鍜屾湇鍔″櫒涔嬮棿錛屼紶閫掕繖縐嶈祫婧愮殑鏌愮琛ㄧ幇灞傦紱 銆銆錛?錛夊鎴風閫氳繃鍥涗釜HTTP鍔ㄨ瘝錛屽鏈嶅姟鍣ㄧ璧勬簮榪涜鎿嶄綔錛屽疄鐜?琛ㄧ幇灞傜姸鎬佽漿鍖?銆?/p> 璇尯 RESTful鏋舵瀯鏈変竴浜涘吀鍨嬬殑璁捐璇尯銆?/p> 鏈甯歌鐨勪竴縐嶈璁¢敊璇紝灝辨槸URI鍖呭惈鍔ㄨ瘝銆?/strong>鍥犱負"璧勬簮"琛ㄧず涓縐嶅疄浣擄紝鎵浠ュ簲璇ユ槸鍚嶈瘝錛孶RI涓嶅簲璇ユ湁鍔ㄨ瘝錛屽姩璇嶅簲璇ユ斁鍦℉TTP鍗忚涓?/p> 涓句緥鏉ヨ錛屾煇涓猆RI鏄?posts/show/1錛屽叾涓璼how鏄姩璇嶏紝榪欎釜URI灝辮璁¢敊浜嗭紝姝g‘鐨勫啓娉曞簲璇ユ槸/posts/1錛岀劧鍚庣敤GET鏂規硶琛ㄧずshow銆?/p> 濡傛灉鏌愪簺鍔ㄤ綔鏄疕TTP鍔ㄨ瘝琛ㄧず涓嶄簡鐨勶紝浣犲氨搴旇鎶婂姩浣滃仛鎴愪竴縐嶈祫婧愩傛瘮濡傜綉涓婃眹嬈撅紝浠庤處鎴?鍚戣處鎴?姹囨500鍏冿紝閿欒鐨刄RI鏄細 銆銆POST /accounts/1/transfer/500/to/2 姝g‘鐨勫啓娉曟槸鎶婂姩璇峵ransfer鏀規垚鍚嶈瘝transaction錛岃祫婧愪笉鑳芥槸鍔ㄨ瘝錛屼絾鏄彲浠ユ槸涓縐嶆湇鍔★細 銆銆POST /transaction HTTP/1.1 鍙︿竴涓璁¤鍖猴紝灝辨槸鍦║RI涓姞鍏ョ増鏈彿錛?/p> 銆銆http://www.example.com/app/1.0/foo 銆銆http://www.example.com/app/1.1/foo 銆銆http://www.example.com/app/2.0/foo 鍥犱負涓嶅悓鐨勭増鏈紝鍙互鐞嗚В鎴愬悓涓縐嶈祫婧愮殑涓嶅悓琛ㄧ幇褰㈠紡錛屾墍浠ュ簲璇ラ噰鐢ㄥ悓涓涓猆RI銆傜増鏈彿鍙互鍦℉TTP璇鋒眰澶翠俊鎭殑Accept瀛楁涓繘琛屽尯鍒嗭紙鍙傝Versioning REST Services錛夛細 銆銆Accept: vnd.example-com.foo+json; version=1.0 銆銆Accept: vnd.example-com.foo+json; version=1.1 銆銆Accept: vnd.example-com.foo+json; version=2.0
銆銆Host: 127.0.0.1
銆銆
銆銆from=1&to=2&amount=500.00
鍘熷笘錛歨ttp://www.ruanyifeng.com/blog/2011/09/restful.html
]]>
main.js / navigator.notification.vibrate(0);
notification.js / Notification.vibrate.vibrate 涓墽琛屼簡 PhoneGap.exec(null, null, "Notification", "vibrate", [mills]);
public boolean onJsPrompt(WebView view, String url, String message, String defaultValue, JsPromptResult result)
涓 搴忓垪鍖栧師鍥狅細
1.姘鎬箙鎬т繚瀛樺璞★紝淇濆瓨瀵硅薄鐨勫瓧鑺傚簭鍒楀埌鏈湴鏂囦歡涓紱
2.閫氳繃搴忓垪鍖栧璞″湪緗戠粶涓紶閫掑璞★紱
3.閫氳繃搴忓垪鍖栧湪榪涚▼闂翠紶閫掑璞°?nbsp;
浜?鑷充簬閫夊彇鍝鍙弬鑰冧笅闈㈢殑鍘熷垯錛?/span>
1.鍦ㄤ嬌鐢ㄥ唴瀛樼殑鏃跺欙紝Parcelable 綾繪瘮Serializable鎬ц兘楂橈紝鎵浠ユ帹鑽愪嬌鐢≒arcelable綾匯?br style="line-height: 25px; " />2.Serializable鍦ㄥ簭鍒楀寲鐨勬椂鍊欎細浜х敓澶ч噺鐨勪復鏃跺彉閲忥紝浠庤屽紩璧烽綣佺殑GC銆?br style="line-height: 25px; " />3.Parcelable涓嶈兘浣跨敤鍦ㄨ灝嗘暟鎹瓨鍌ㄥ湪紓佺洏涓婄殑鎯呭喌錛屽洜涓篜arcelable涓嶈兘寰堝ソ鐨勪繚璇佹暟鎹殑鎸佺畫鎬у湪澶栫晫鏈夊彉鍖栫殑鎯呭喌涓嬨傚敖綆erializable鏁堢巼浣庣偣錛?涔熶笉鎻愬$敤錛屼絾鍦ㄨ繖縐嶆儏鍐典笅錛岃繕鏄緩璁綘鐢⊿erializable 銆?/span>
3 淇敼AndroidManifest.xml錛屾妸璇ctivity娣誨姞 android:configChanges="orientation"錛屽垏妯睆錛屽彧閿姣佷竴嬈°?/p>
onSaveInstanceState
onPause
onStop
onDestroy
onCreate
onStart
onRestoreInstanceState
onResume
onSaveInstanceState
onPause
onStop
onDestroy
onCreate
onStart
onRestoreInstanceState
onResume
onConfigurationChanged
5 鏇存敼 android:configChanges="orientation" 鏀規垚 android:configChanges="orientation|keyboardHidden"錛屽垏妯睆錛屽氨鍙墦鍗皁nConfigChanged
onConfigurationChanged
6 鍒囧洖绔栧睆
onConfigurationChanged
onConfigurationChanged
鎬葷粨錛?/p>
1銆佷笉璁劇疆Activity鐨刟ndroid:configChanges鏃訛紝鍒囧睆浼氶噸鏂拌皟鐢ㄥ悇涓敓鍛藉懆鏈燂紝鍒囨í灞忔椂浼氭墽琛屼竴嬈★紝鍒囩珫灞忔椂浼氭墽琛屼袱嬈?/p>
2銆佽緗瓵ctivity鐨刟ndroid:configChanges="orientation"鏃訛紝鍒囧睆榪樻槸浼氶噸鏂拌皟鐢ㄥ悇涓敓鍛藉懆鏈燂紝鍒囨í銆佺珫灞忔椂鍙細鎵ц涓嬈?/p>
3銆佽緗瓵ctivity鐨刟ndroid:configChanges="orientation|keyboardHidden"鏃訛紝鍒囧睆涓嶄細閲嶆柊璋冪敤鍚勪釜鐢熷懡鍛ㄦ湡錛屽彧浼氭墽琛宱nConfigurationChanged鏂規硶