在進行正題之前,我們先來做一個簡單的實驗。下面是我編寫的一個簡單的測試網頁,其中包含兩個鏈接,第一個鏈接比較容易理解,點擊后跳轉到百度,第二個鏈接如果在我們的 PC 瀏覽器點擊肯定會提示找不到網頁,但是放在 Android 系統中呢?下面我們來進行測試。
創建一個 Android 項目,其中 MainActivity 界面如下:
同時“打開”按鈕進行如下操作:
運行模擬器。點擊“打開”按鈕,點擊“啟動 Android ”鏈接并沒有任何效果,在 Logcat 下輸出如下錯誤信息:
下再添加一個 <intent-filter> :
添加完畢后當我們再次運行模擬器。點擊“打開”按鈕,點擊“啟動 Android ”鏈接后我們發現我們的又回到了 MainActivity , 注意我們是通過瀏覽器啟動 Activity 。下面我們需要處理的就是獲取請求的路徑,也就是android://MainActivity?id=coolszy 。這時我們可以復寫 Activity 種的 onNewIntent() 方法,不熟悉的朋友可以百度了解該方法。我們都知道 Activity 之間信息的傳遞時通過 Intent 對象,因此通過該方法中的 Intent 對象,我們可以獲得請求的路徑,最終獲得請求的參數信息:
注:如果想讓該方法執行,我們需修改 AndroidManifest.xml 文件中 MainActivity 的配置,添加 android:lauchMode 屬性:
此時當我們再次運行模擬器。點擊“打開”按鈕,點擊“啟動 Android ”鏈接后我們發現我們的回到了 MainActivity 上,同時也得到了參數。
我們在總結下這個實驗:這個實驗的主要目的是學習如何從瀏覽器種啟動一個 Activity ,首先我們要給相關的 Activity 添加一個 <intent-filter> ,其次通過復寫 onNewIntent() 方法得到返回信息,如果想要被 onNewIntent() 調用,我們還行給其 Activity 添加一個 android:lauchMode 屬性。
下面我們回歸到本次主題,在 OAuth 認證第一步種有個 oauth_callback 參數,作用是認證成功后瀏覽器會被重定向到這個 url 中,如果我們 url 設置為 http://www.baidu.com ,則會定位到 http://www.baidu.com ,同樣,如果我們把 url 設置為 android://MainActivity ,則會定位到 android://MainActivity 上,如果 Activity 再加上 <intent-filter> ,這時 MainActivity 就可以自動獲取到驗證碼,而不需要我們手動的輸入。
首先,設置我們的oauth_callback 參數:
注:android://MainActivity 之所以使用 encode()是應為我在測試時發現當我們傳遞的 url 包含有“ : ”、“ // ”等符號會返回 401 錯誤,因此在這里進行 encode() 。
其次,修改AndroidManifest.xml 文件中 MainActivity 配置:
同時給復寫 MainActivity 的 onNewIntent() 方法,用于接收傳遞過來的參數信息:
至此我們的程序就能自動的獲取驗證碼,而不需要用戶手動的輸入。
課程下載地址: http://u.115.com/file/dn43kklr
文檔下載地址: http://download.csdn.net/source/3430433
源碼下載地址: http://u.115.com/file/aq2vc8m4
更多文章、技術交流、商務合作、聯系博主
微信掃碼或搜索:z360901061

微信掃一掃加我為好友
QQ號聯系: 360901061
您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。
【本文對您有幫助就好】元
