一種Native與Web頁面的交互方法和系統(tǒng)的制作方法
【技術(shù)領(lǐng)域】
[0001] 本發(fā)明涉及信息交互技術(shù)領(lǐng)域,尤其涉及一種Native與Web頁面的交互方法和系 統(tǒng)。
【背景技術(shù)】
[0002] 目前,大部分App通過內(nèi)嵌Web頁以便于快速發(fā)布或修改新頁面。隨著App用戶 量與日倶增,對Web頁面的形式或內(nèi)容的要求更加復(fù)雜,Web頁面與Native的交互也更加 復(fù)雜。因此,如何最小成本的解決復(fù)雜的需求和交互成為我們的重要工作和亟待解決的問 題。
[0003] 現(xiàn)有技術(shù)中,一般是通過識別字符串的方式來進(jìn)行Web頁面的跳轉(zhuǎn),根據(jù)不同的 字符串來進(jìn)行下一步操作。
[0004] 判斷字符串這種方式雖然能解決交互的部分問題,但是這種方式也存在明顯缺 占 .
[0005] 首先,字符串的判斷規(guī)則寫在Native端,一旦上線就不能修改Web頁面,導(dǎo)致不能 及時滿足Web頁面的新的需求;
[0006] 其次,Native端不能靈活從Web端讀取參數(shù)來進(jìn)行相應(yīng)操作;
[0007] 最后,Native端不能通過Web端的靈活配置來控制Native端的行為。
【發(fā)明內(nèi)容】
[0008] 本發(fā)明的目的在于提供一種Native與Web頁面的交互方法和系統(tǒng),從而解決現(xiàn)有 技術(shù)中存在的前述問題。
[0009] 為了實現(xiàn)上述目的,本發(fā)明采用的技術(shù)方案如下:
[0010] 一種Native與Web頁面的交互方法,包括:
[0011] SI,Native端定制交互規(guī)則,并將該規(guī)則存儲在Web端;
[0012] S2, Native端捕獲點擊的URL鏈接;
[0013] S3, Native端從Web端獲取包含所述交互規(guī)則的Json實體;
[0014] S4,將URL鏈接傳入所述Json實體,判斷是否需要處理此URL鏈接,如果需要,則 執(zhí)行S5-S7,否則直接跳轉(zhuǎn)到此URL鏈接對應(yīng)的Web頁面;
[0015] S5,根據(jù)URL鏈接,在所述Json實體中獲取需要處理此URL鏈接的規(guī)則、參數(shù)和/ 或配置信息;
[0016] S6,根據(jù)S5獲取的規(guī)則、參數(shù)和/或配置信息呼喚Native頁面進(jìn)行相應(yīng)處理操 作;
[0017] S7,調(diào)用 Native 操作。
[0018] 優(yōu)選地,Sl中所述Native端定制交互規(guī)貝lj,根據(jù)Native端的性能進(jìn)行定制。
[0019] 優(yōu)選地,所述Native端的性能包括能夠執(zhí)行業(yè)務(wù)邏輯、能夠接收的參數(shù)和/或能 夠處理的對應(yīng)關(guān)系。
[0020] 其中,S3具體為,Native端執(zhí)行Web頁面中的JS方法,獲取包含交互規(guī)則的Json 實體。
[0021] 優(yōu)選地,所述 JS 方法為:window. AppRule ()。
[0022] 優(yōu)選地,S4中,所述將URL鏈接傳入所述Json實體,判斷是否需要處理此URL鏈 接,根據(jù)如下方法進(jìn)行判斷:
[0023] 當(dāng)Json中的action Key值是native時,取nativeName Key中的值跳轉(zhuǎn)到對應(yīng) 的APP原生頁面;
[0024] 當(dāng)Json中的action Key值是push時,取url Key中的值,并跳轉(zhuǎn)到對應(yīng)的web 頁面;
[0025] 當(dāng)Json中的action Key值是back時,取backCount Key中的值進(jìn)行返回操作;
[0026] 當(dāng)Json實體為空時不處理URL鏈接,即直接刷新當(dāng)前web頁面。
[0027] 優(yōu)選地,S5中,所述需要處理此URL鏈接的規(guī)則、參數(shù)和/或配置信息包括:
[0028] 需要跳轉(zhuǎn)到APP原生頁面時包括:
[0029]
[0030] 其中,
[0031] action:表示要跳轉(zhuǎn)的動作類型,這里為跳轉(zhuǎn)到原生頁面;
[0032] nativeName:表示要跳轉(zhuǎn)到的頁面名稱;
[0033] params:表示要傳給原生頁面所需的參數(shù);
[0034] callback:表示從原生頁面返回至web頁面時,自動調(diào)取的web頁面js方法;
[0035] buttons:表示原生頁面要顯示的功能按鈕;
[0036] 需要跳轉(zhuǎn)到web頁面時包括:
[0037] CN 105138340 A 仇 口月巾 3/7 頁
[0038] action:表示要跳轉(zhuǎn)的動作類型,這里為跳轉(zhuǎn)到web頁面;
[0039] url:表示要跳轉(zhuǎn)的目標(biāo)地址;
[0040] nativeParams:表示目標(biāo)地址所需要的參數(shù),需要拼接至URL中,得到最終的目 標(biāo)地址;
[0041] params:表示要傳給下一個web頁面所需的參數(shù);
[0042] 需要進(jìn)行返回操作時包括:
[0043]
[0044] action:表示要跳轉(zhuǎn)的動作類型,這里為返回到上級頁面;
[0045] backCount:表示要返回的層級數(shù),0表示回根頁面其他數(shù)字返回對應(yīng)的層級。
[0046] 一種Native與Web頁面的交互系統(tǒng),包括:
[0047] Native端:用于定制交互規(guī)則,用于捕獲點擊的URL鏈接,還用于將URL鏈接傳入 所述Json實體,判斷是否需要處理此URL鏈接,還用于跳轉(zhuǎn)到此URL鏈接對應(yīng)的Web頁面 或根據(jù)URL鏈接,在所述Json實體中獲取需要處理此URL鏈接的規(guī)則、參數(shù)和/或配置信 息,并根據(jù)獲取到的規(guī)則、參數(shù)和/或配置信息呼喚Native頁面進(jìn)行相應(yīng)處理操作,以及進(jìn) 行相應(yīng)的操作;
[0048] Web端:用于存儲交互規(guī)則,還用于根據(jù)URL鏈接,為Native端提供包含交互規(guī)則 的Json實體。
[0049] 本發(fā)明的有益效果是:本發(fā)明實施例提供的Native與Web頁面的交互方法和系 統(tǒng),通過在Native端定制字符串的判斷規(guī)則,并將該規(guī)則寫在Web端,這樣,Native端就將 其能干什么事,接收什么參數(shù),如何處理對應(yīng)關(guān)系等信息全部告知了 Web端,則無論Web端 如何改變,Native端都會保證可以正確執(zhí)行業(yè)務(wù)邏輯,在Web頁面頻繁變化時,也不需要重 新發(fā)新版本,從而保證了信息的及時性和可復(fù)用性。
【附圖說明】
[0050] 圖1是本發(fā)明實施例一提供的Native與Web頁面的交互方法流程示意圖。
【具體實施方式】
[0051] 為了使本發(fā)明的目的、技術(shù)方案及優(yōu)點更加清楚明白,以下結(jié)合附圖,對本發(fā)明進(jìn) 行進(jìn)一步詳細(xì)說明。應(yīng)當(dāng)理解,此處所描述的【具體實施方式】僅僅用以解釋本發(fā)明,并不用于 限定本發(fā)明。
[0052] 本發(fā)明實施例中涉及到的技術(shù)術(shù)語解釋如下:
[0053] App :應(yīng)用程序 application 的縮寫;
[0054] Native :用App技術(shù)編寫的應(yīng)用程序;
[0055] Web:網(wǎng)頁;
[0056] JS : javascript 的簡稱;
[0057] Json : -種數(shù)據(jù)格式。
[0058] 實施例一
[0059] 如圖1所示,本發(fā)明實施例提供了一種Native與Web頁面的交互方法,包括:
[0060] SI,Native端定制交互規(guī)則,并將該規(guī)則存儲在Web端;
[0061] S2, Native端捕獲點擊的URL鏈接;
[0062] S3, Native端從Web端獲取包含所述交互規(guī)則的Json實體;
[0063] S4,將URL鏈接傳入所述Json實體,判斷是否需要處理此URL鏈接,如果需要,則 執(zhí)行S5-S7,否則直接跳轉(zhuǎn)到此URL鏈接對應(yīng)的Web頁面;
[0064] S5,根據(jù)URL鏈接,在所述Json實體中獲取需要處理此URL鏈接的規(guī)則、參數(shù)和/ 或配置信息;
[0065] S6,根據(jù)S5獲取的規(guī)則、參數(shù)和/或配置信息呼喚Native頁面進(jìn)行相應(yīng)處理操 作;
[0066] S7,調(diào)用 Native 操作。
[0067] 上述方法中,URL鏈接也可以為對應(yīng)的JS代碼,但是這樣一來無論是Web端還是 Native端,都要額外編寫業(yè)務(wù)代碼,不利于擴(kuò)展維護(hù)。
[0068] 采用上述方法,使得本發(fā)明實施例通過以下方式:
[0069] 首先,將規(guī)則寫在了 Web端,Native端不存儲交互規(guī)則,完全交給Web端控制;
[0070] 其次,Web端可以給Native端需要的參數(shù);
[0071] 最后,Web端可以告知Native端它需要的參數(shù),并控制Native的行為。
[0072] 很好的解決了現(xiàn)有技術(shù)中存在的問題。
[0073] 因此,本發(fā)明實施例具有以下有益效果:通過在Native端定制字符串的判斷規(guī) 貝1J,并將該規(guī)則寫在Web端,這樣,Native端就將其能干什么事,接收什么參數(shù),如何處理對 應(yīng)關(guān)系等信息全部告知了 Web端,則無論Web端如何改變,Native端都會保證可以正確執(zhí) 行業(yè)務(wù)邏輯,在Web頁面頻繁變化時,也不需要重新發(fā)新版本,從而保證了信息的及時性和 可復(fù)用性。
[0074] 其中,Sl中所述Native端定制交互規(guī)則,根據(jù)Native端的性能進(jìn)行定制。
[0075] 所述Native端的性能包括能夠執(zhí)行業(yè)務(wù)邏輯、能夠接收的參數(shù)和/或能夠處理的 對應(yīng)關(guān)系。
[0076] S3具體為,Native端執(zhí)行Web頁面中的JS方法,獲取包含交互規(guī)則的Json實體。
[0077] 具體的,所述 JS 方法為:window. AppRule ()。
[0078] 其中,JS方法提供的JS代碼可以跨平臺使用。
[0079] 本發(fā)明實施例中,S4中,所述將URL鏈接傳入所述Json實體,判斷是否需要處理 此URL鏈接,根據(jù)如下方