檢測(cè)應(yīng)用程序是否安裝的方法和瀏覽器的制造方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及通信技術(shù)領(lǐng)域,尤其涉及一種檢測(cè)應(yīng)用程序是否安裝的方法和瀏覽器。
【背景技術(shù)】
[0002]Android操作系統(tǒng)是一種基于Linux的自由及開放源代碼的操作系統(tǒng),該系統(tǒng)可以實(shí)現(xiàn)應(yīng)用程序之間的無縫跳轉(zhuǎn)。但在外部瀏覽器打開的網(wǎng)頁頁面中,由于無法通過網(wǎng)頁的javascript ( 一種腳本語言,簡(jiǎn)稱為JS)腳本來得到Android系統(tǒng)中應(yīng)用程序的安裝信息,從而導(dǎo)致在應(yīng)用程序未安裝時(shí),從網(wǎng)頁頁面跳轉(zhuǎn)到指定的應(yīng)用程序時(shí)出錯(cuò)。
[0003]目前,多數(shù)瀏覽器可以根據(jù)應(yīng)用程序?qū)?yīng)的通用資源標(biāo)識(shí)符(Uniform ResourceIdentifier,簡(jiǎn)稱為URI)跳轉(zhuǎn)到相應(yīng)的應(yīng)用程序,當(dāng)應(yīng)用程序安裝時(shí),喚起應(yīng)用程序,javascript代碼的執(zhí)行被阻斷,而當(dāng)應(yīng)用程序未安裝時(shí),繼續(xù)執(zhí)行后續(xù)的javascript代碼。因此,可以通過javascript的超時(shí)機(jī)制來判斷應(yīng)用程序是否安裝,即通過URI跳轉(zhuǎn)到應(yīng)用程序后,如果阻斷時(shí)間超過預(yù)設(shè)時(shí)間值,則判斷出安裝了應(yīng)用程序,否則為未安裝應(yīng)用程序。但這種判斷方法是非常不穩(wěn)定的,一些瀏覽器已經(jīng)優(yōu)化了阻斷機(jī)制,即跳轉(zhuǎn)到應(yīng)用后依然會(huì)繼續(xù)執(zhí)行javascript代碼,不再阻斷,因此原本的超時(shí)判斷失效,無法準(zhǔn)確判斷應(yīng)用程序是否安裝。
【發(fā)明內(nèi)容】
[0004]本發(fā)明旨在至少在一定程度上解決相關(guān)技術(shù)中的技術(shù)問題之一。
[0005]為此,本發(fā)明的一個(gè)目的在于提出一種檢測(cè)應(yīng)用程序是否安裝的方法,該方法可以準(zhǔn)確判斷應(yīng)用程序是否安裝。
[0006]本發(fā)明的另一個(gè)目的在于提出一種瀏覽器。
[0007]為達(dá)到上述目的,本發(fā)明第一方面實(shí)施例提出的檢測(cè)應(yīng)用程序是否安裝的方法,包括:獲取指示信息,所述指示信息指示所述應(yīng)用程序在安裝時(shí)設(shè)置的安裝標(biāo)識(shí);判斷根據(jù)所述指示信息是否獲取到所述安裝標(biāo)識(shí);如果獲取到所述安裝標(biāo)識(shí),確定所述應(yīng)用程序已安裝,如果沒有獲取到所述安裝標(biāo)識(shí),確定所述應(yīng)用程序未安裝。
[0008]本發(fā)明第一方面實(shí)施例提出的檢測(cè)應(yīng)用程序是否安裝的方法,通過在待檢測(cè)的應(yīng)用程序中設(shè)置安裝標(biāo)識(shí),并判斷根據(jù)指示信息能否獲取到與待檢測(cè)的應(yīng)用程序?qū)?yīng)的安裝標(biāo)識(shí),來確定待檢測(cè)的應(yīng)用程序是否已安裝,可以保證檢測(cè)的準(zhǔn)確性。
[0009]為達(dá)到上述目的,本發(fā)明第二方面實(shí)施例提出的瀏覽器,包括:獲取模塊,用于獲取指示信息,所述指示信息指示應(yīng)用程序在安裝時(shí)設(shè)置的安裝標(biāo)識(shí);判斷模塊,用于判斷根據(jù)所述指示信息是否獲取到所述安裝標(biāo)識(shí);確定模塊,用于在獲取到所述安裝標(biāo)識(shí)時(shí),確定所述應(yīng)用程序已安裝,在沒有獲取到所述安裝標(biāo)識(shí)時(shí),確定所述應(yīng)用程序未安裝。
[0010]本發(fā)明第二方面實(shí)施例提出的瀏覽器,通過在待檢測(cè)的應(yīng)用程序中設(shè)置安裝標(biāo)識(shí),并判斷根據(jù)指示信息能否獲取到與待檢測(cè)的應(yīng)用程序?qū)?yīng)的安裝標(biāo)識(shí),來確定待檢測(cè)的應(yīng)用程序是否已安裝,可以保證檢測(cè)的準(zhǔn)確性。
[0011]為達(dá)到上述目的,本發(fā)明第三方面實(shí)施例提出的客戶端設(shè)備,包括殼體、處理器、存儲(chǔ)器、電路板和電源電路,其中,電路板安置在殼體圍成的空間內(nèi)部,處理器和存儲(chǔ)器設(shè)置在電路板上;電源電路,用于為客戶端設(shè)備的各個(gè)電路V碼來運(yùn)行與可執(zhí)行程序代碼對(duì)應(yīng)的程序,以用于執(zhí)行以下步驟:獲取指示信息,所述指示信息指示所述應(yīng)用程序在安裝時(shí)設(shè)置的安裝標(biāo)識(shí);判斷根據(jù)所述指示信息是否獲取到所述安裝標(biāo)識(shí);如果獲取到所述安裝標(biāo)識(shí),確定所述應(yīng)用程序已安裝,如果沒有獲取到所述安裝標(biāo)識(shí),確定所述應(yīng)用程序未安裝。
[0012]本發(fā)明第三方面實(shí)施例提出的客戶端設(shè)備,通過在待檢測(cè)的應(yīng)用程序中設(shè)置安裝標(biāo)識(shí),并判斷根據(jù)指示信息能否獲取到與待檢測(cè)的應(yīng)用程序?qū)?yīng)的安裝標(biāo)識(shí),來確定待檢測(cè)的應(yīng)用程序是否已安裝,可以保證檢測(cè)的準(zhǔn)確性。
[0013]本發(fā)明附加的方面和優(yōu)點(diǎn)將在下面的描述中部分給出,部分將從下面的描述中變得明顯,或通過本發(fā)明的實(shí)踐了解到。
【附圖說明】
[0014]本發(fā)明上述的和/或附加的方面和優(yōu)點(diǎn)從下面結(jié)合附圖對(duì)實(shí)施例的描述中將變得明顯和容易理解,其中:
[0015]圖1是本發(fā)明實(shí)施例提出的一種檢測(cè)應(yīng)用程序是否安裝的方法的流程示意圖;
[0016]圖2是本發(fā)明另一實(shí)施例提出的檢測(cè)應(yīng)用程序是否安裝的方法的流程圖;
[0017]圖3是根據(jù)本發(fā)明一個(gè)具體實(shí)施例的在JS腳本中植入代碼來判斷是否可以獲取到安裝標(biāo)識(shí)的流程示意圖;
[0018]圖4是本發(fā)明一個(gè)實(shí)施例的瀏覽器的結(jié)構(gòu)框圖;
[0019]圖5是本發(fā)明另一個(gè)實(shí)施例的瀏覽器的結(jié)構(gòu)框圖。
【具體實(shí)施方式】
[0020]下面詳細(xì)描述本發(fā)明的實(shí)施例,所述實(shí)施例的示例在附圖中示出,其中自始至終相同或類似的標(biāo)號(hào)表示相同或類似的元件或具有相同或類似功能的元件。下面通過參考附圖描述的實(shí)施例是示例性的,僅用于解釋本發(fā)明,而不能理解為對(duì)本發(fā)明的限制。相反,本發(fā)明的實(shí)施例包括落入所附加權(quán)利要求書的精神和內(nèi)涵范圍內(nèi)的所有變化、修改和等同物。
[0021]下面參考附圖描述根據(jù)本發(fā)明實(shí)施例的檢測(cè)應(yīng)用程序是否安裝的方法和瀏覽器。
[0022]圖1是本發(fā)明一實(shí)施例提出的檢測(cè)應(yīng)用程序是否安裝的方法的流程圖,該方法包括:
[0023]SlOl:獲取指示信息,所述指示信息指示所述應(yīng)用程序在安裝時(shí)設(shè)置的安裝標(biāo)識(shí)。
[0024]其中,安裝標(biāo)識(shí)可以具體設(shè)置在應(yīng)用程序的斷言(assert)目錄中。安裝標(biāo)識(shí)可以為圖片和/或文本等。進(jìn)一步的,為了節(jié)省空間,可以設(shè)置安裝標(biāo)識(shí)的大小小于預(yù)先設(shè)定的閾值。
[0025]在本發(fā)明的一個(gè)實(shí)施例中,所述指示信息指示所述安裝標(biāo)識(shí)的定位信息,例如,指示信息可以為安裝標(biāo)識(shí)的URI,根據(jù)該URI可以查找相應(yīng)的安裝標(biāo)識(shí)。
[0026]一個(gè)實(shí)施例中,所述指示信息存儲(chǔ)在系統(tǒng)指定的存儲(chǔ)位置,例如,指示信息可以預(yù)先嵌入系統(tǒng)或系統(tǒng)設(shè)定的另一已安裝的應(yīng)用(比如瀏覽器)中。例如,指示信息嵌入到瀏覽器的JS(JavaScript)腳本中。
[0027]S102:判斷根據(jù)所述指示信息是否獲取到所述安裝標(biāo)識(shí)。
[0028]具體地,瀏覽器可以將獲取的指示信息發(fā)送給系統(tǒng)的內(nèi)容提供(ContentProvider)組件,由ContentProvider組件根據(jù)該指示信息獲取安裝標(biāo)識(shí),并將是否獲取到的結(jié)果發(fā)送給瀏覽器。
[0029]S103:如果獲取到安裝標(biāo)識(shí),確定所述應(yīng)用程序已安裝,如果沒有獲取到安裝標(biāo)識(shí),確定所述應(yīng)用程序未安裝。
[0030]具體地,在本發(fā)明的一個(gè)實(shí)施例中,當(dāng)應(yīng)用程序被安裝時(shí),安裝標(biāo)識(shí)被存儲(chǔ)在應(yīng)用程序的預(yù)設(shè)目錄下,用于標(biāo)識(shí)本應(yīng)用程序已安裝,此時(shí)根據(jù)指示信息可獲取到該安裝標(biāo)識(shí);當(dāng)應(yīng)用程序被卸載時(shí),對(duì)應(yīng)的安裝標(biāo)識(shí)也會(huì)同時(shí)被清除,則根據(jù)指示信息將無法獲取到該安裝標(biāo)識(shí)。因此,可通過根據(jù)指示信息是否獲取到安裝標(biāo)識(shí)來確認(rèn)對(duì)應(yīng)的應(yīng)用程序是否已安裝,即如果獲取到安裝標(biāo)識(shí),則確定待檢測(cè)的應(yīng)用程序已安裝;如果沒有獲取到安裝標(biāo)識(shí),則確定待檢測(cè)的應(yīng)用程序未安裝。
[0031]本實(shí)施例的檢測(cè)應(yīng)用程序是否安裝的方法,通過在待檢測(cè)的應(yīng)用程序中設(shè)置安裝標(biāo)識(shí),并判斷根據(jù)指示信息能否獲取到與待檢測(cè)的應(yīng)用程序?qū)?yīng)的安裝標(biāo)識(shí),來確定待檢