所屬的技術人員能夠理解,本技術的各個方面可以實現為系統、方法或程序產品。因此,本技術的各個方面可以具體實現為以下形式,即:完全的硬件實施方式、完全的軟件實施方式(包括固件、微代碼等),或硬件和軟件方面結合的實施方式,這里可以統稱為“電路”、“模塊”或“系統”。與上述方法實施例基于同一發明構思,本技術實施例中還提供了一種電子設備。在一種實施例中,該電子設備可以是服務器,如圖1所示的服務器102。在該實施例中,電子設備的結構如圖18所示,可以至少包括存儲器1801、通訊模塊1803,以及至少一個處理器1802。存儲器1801,用于存儲處理器1802執行的計算機程序。存儲器1801可主要包括存儲程序區和存儲數據區,其中,存儲程序區可存儲操作系統,以及運行即時通訊功能所需的程序等;存儲數據區可存儲各種即時通訊信息和操作指令集等。存儲器1801可以是易失性存儲器(volatile?memory),例如隨機存取存儲器(random-access?memory,ram);存儲器1801也可以是非易失性存儲器(non-volatilememory),例如只讀存儲器,快閃存儲器(flash?memory),硬盤(hard?disk?drive,hdd)或固態硬盤(solid-state?drive,ssd);或者存儲器1801是能夠用于攜帶或存儲具有指令或數據結構形式的期望的計算機程序并能夠由計算機存取的任何其他介質,但不限于此。存儲器1801可以是上述存儲器的組合。處理器1802,可以包括一個或多個中央處理單元(central?processing?unit,cpu)或者為數字處理單元等等。處理器1802,用于調用存儲器1801中存儲的計算機程序時實現上述物品推薦方法。通訊模塊1803用于與終端設備和其他服務器進行通信。本技術實施例中不限定上述存儲器1801、通訊模塊1803和處理器1802之間的具體連接介質。本技術實施例在圖18中以存儲器1801和處理器1802之間通過總線1804連接,總線1804在圖18中以粗線描述,其它部件之間的連接方式,僅是進行示意性說明,并不引以為限。總線1804可以分為地址總線、數據總線、控制總線等。為便于描述,圖18中僅用一條粗線描述,但并不描述僅有一根總線或一種類型的總線。存儲器1801中存儲有計算機存儲介質,計算機存儲介質中存儲有計算機可執行指令,計算機可執行指令用于實現本技術實施例的物品推薦方法。處理器1802用于執行上述的物品推薦方法。在另一種實施例中,電子設備也可以是其他電子設備,如圖1所示的終端設備101。在該實施例中,電子設備的結構可以如圖19所示,包括:通信組件1910、存儲器1920、顯示單元1930、攝像頭1940、傳感器1950、音頻電路1960、藍牙模塊1970、處理器1980等部件。通信組件1910用于與服務器進行通信。在一些實施例中,可以包括電路無線保真(wireless?fidelity,wifi)模塊,wifi模塊屬于短距離無線傳輸技術,電子設備通過wifi模塊可以幫助對象收發信息。存儲器1920可用于存儲軟件程序及數據。處理器1980通過運行存儲在存儲器1920的軟件程序或數據,從而執行終端設備101的各種功能以及數據處理。存儲器1920可以包括高速隨機存取存儲器,還可以包括非易失性存儲器,例如至少一個磁盤存儲器件、閃存器件、或其他易失性固態存儲器件。存儲器1920存儲有使得終端設備1910能運行的操作系統。本技術中存儲器1920可以存儲操作系統及各種應用程序,還可以存儲執行本技術實施例物品推薦方法的計算機程序。顯示單元1930還可用于顯示由對象輸入的信息或提供給對象的信息以及終端設備101的各種菜單的圖形用戶界面(graphical?user?interface,gui)。具體地,顯示單元1930可以包括設置在終端設備1910正面的顯示屏1932。其中,顯示屏1932可以采用液晶顯示器、發光二極管等形式來配置。顯示單元1930可以用于顯示本技術實施例中的缺陷檢測界面、模型訓練界面等。顯示單元1930還可用于接收輸入的數字或字符信息,產生與終端設備101的對象設置以及功能控制有關的信號輸入,具體地,顯示單元1930可以包括設置在終端設備101正面的觸控屏1931,可收集對象在其上或附近的觸摸操作,例如點擊按鈕,拖動滾動框等。其中,觸控屏1931可以覆蓋在顯示屏1932之上,也可以將觸控屏1931與顯示屏1932集成而實現物理終端設備101的輸入和輸出功能,集成后可以簡稱觸摸顯示屏。本技術中顯示單元1930可以顯示應用程序以及對應的操作步驟。攝像頭1940可用于捕獲靜態圖像,對象可以將攝像頭1940拍攝的圖像通過應用發布。攝像頭1940可以是一個,也可以是多個。物體通過鏡頭生成光學圖像投射到感光元件。感光元件可以是電荷耦合器件(charge?coupled?device,ccd)或互補金屬氧化物半導體(complementary?metal-oxide-semiconductor,cmos)光電晶體管。感光元件把光信號轉換成電信號,之后將電信號傳遞給處理器1980轉換成數字圖像信號。物理終端設備還可以包括至少一種傳感器1950,比如加速度傳感器1951、距離傳感器1952、指紋傳感器1953、溫度傳感器1954。終端設備還可配置有陀螺儀、氣壓計、濕度計、溫度計、紅外線傳感器、光傳感器、運動傳感器等其他傳感器。音頻電路1960、揚聲器1961、傳聲器1962可提供對象與終端設備101之間的音頻接口。音頻電路1960可將接收到的音頻數據轉換后的電信號,傳輸到揚聲器1961,由揚聲器1961轉換為聲音信號輸出。物理終端設備1910還可配置音量按鈕,用于調節聲音信號的音量。另一方面,傳聲器1962將收集的聲音信號轉換為電信號,由音頻電路1960接收后轉換為音頻數據,再將音頻數據輸出至通信組件1910以發送給比如另一物理終端設備101,或者將音頻數據輸出至存儲器1920以便進一步處理。藍牙模塊1970用于通過藍牙協議來與其他具有藍牙模塊的藍牙設備進行信息交互。例如,物理終端設備可以通過藍牙模塊1920與同樣具備藍牙模塊的可穿戴電子設備(例如智能手表)建立藍牙連接,從而進行數據交互。處理器1980是物理終端設備的控制中心,利用各種接口和線路連接整個終端的各個部分,通過運行或執行存儲在存儲器1920內的軟件程序,以及調用存儲在存儲器1920內的數據,執行終端設備的各種功能和處理數據。在一些實施例中,處理器1980可包括一個或多個處理單元;處理器1980還可以集成應用處理器和基帶處理器,其中,應用處理器主要處理操作系統、用戶界面和應用程序等,基帶處理器主要處理無線通信。可以理解的是,上述基帶處理器也可以不集成到處理器1980中。本技術中處理器1980可以運行操作系統、應用程序、用戶界面顯示及觸控響應,以及本技術實施例的物品推薦方法。另外,處理器1980與顯示單元1930耦接。在一些可能的實施方式中,本技術提供的調用目標原生功能的方法的各個方面還可以實現為一種程序產品的形式,其包括計算機程序,當程序產品在電子設備上運行時,計算機程序用于使電子設備執行本說明書上述描述的根據本技術各種示例性實施方式的物品推薦方法中的步驟。程序產品可以采用一個或多個可讀介質的任意組合。可讀介質可以是可讀信號介質或者可讀存儲介質。可讀存儲介質例如可以是但不限于電、磁、光、電磁、紅外線、或半導體的系統、裝置或器件,或者任意以上的組合。可讀存儲介質的更具體地例子(非窮舉的列表)包括:具有一個或多個導線的電連接、便攜式盤、硬盤、隨機存取存儲器(ram)、只讀存儲器(rom)、可擦式可編程只讀存儲器(eprom或閃存)、光纖、便攜式緊湊盤只讀存儲器(cd-rom)、光存儲器件、磁存儲器件、或者上述的任意合適的組合。本技術的實施方式的程序產品可以采用便攜式緊湊盤只讀存儲器(cd-rom)并包括計算機程序,并可以在電子設備上運行。然而,本技術的程序產品不限于此,在本文件中,可讀存儲介質可以是任何包含或存儲程序的有形介質,該程序可以被命令執行系統、裝置或者器件使用或者與其結合使用。可讀信號介質可以包括在基帶中或者作為載波一部分傳播的數據信號,其中承載了可讀計算機程序。這種傳播的數據信號可以采用多種形式,包括但不限于電磁信號、光信號或上述的任意合適的組合。可讀信號介質還可以是可讀存儲介質以外的任何可讀介質,該可讀介質可以發送、傳播或者傳輸用于由命令執行系統、裝置或者器件使用或者與其結合使用的程序。可讀介質上包含的計算機程序可以用任何適當的介質傳輸,包括但不限于無線、有線、光纜、rf等等,或者上述的任意合適的組合。可以以一種或多種程序設計語言的任意組合來編寫用于執行本技術操作的計算機程序,程序設計語言包括面向對象的程序設計語言—諸如java、c++等,還包括常規的過程式程序設計語言—諸如“c”語言或類似的程序設計語言。計算機程序可以完全地在用戶電子設備上執行、部分地在用戶電子設備上執行、作為一個獨立的軟件包執行、部分在用戶電子設備上部分在遠程電子設備上執行、或者完全在遠程電子設備上執行。在涉及遠程電子設備的情形中,遠程電子設備可以通過任意種類的網絡包括局域網(lan)或廣域網(wan)連接到用戶電子設備,或者,可以連接到外部電子設備(例如利用因特網服務提供商來通過因特網連接)。應當注意,盡管在上文詳細描述中提及了裝置的若干單元或子單元,但是這種劃分僅僅是示例性的并非強制性的。實際上,根據本技術的實施方式,上文描述的兩個或更多單元的特征和功能可以在一個單元中具體化。反之,上文描述的一個單元的特征和功能可以進一步劃分為由多個單元來具體化。此外,盡管在附圖中以特定順序描述了本技術方法的操作,但是,這并非要求或者暗示必須按照該特定順序來執行這些操作,或是必須執行全部所示的操作才能實現期望的結果。附加地或備選地,可以省略某些步驟,將多個步驟合并為一個步驟執行,和/或將一個步驟分解為多個步驟執行。本領域內的技術人員應明白,本技術的實施例可提供為方法、系統、或計算機程序產品。因此,本技術可采用完全硬件實施例、完全軟件實施例、或結合軟件和硬件方面的實施例的形式。而且,本技術可采用在一個或多個其中包含有計算機可用程序代碼的計算機可用存儲介質(包括但不限于磁盤存儲器、cd-rom、光學存儲器等)上實施的計算機程序產品的形式。本技術是參照根據本技術的方法、設備(系統)、和計算機程序產品的流程圖和/或方框圖來描述的。應理解可由計算機程序指令實現流程圖和/或方框圖中的每一流程和/或方框、以及流程圖和/或方框圖中的流程和/或方框的結合。可提供這些計算機程序指令到通用計算機、專用計算機、嵌入式處理機或其他可編程數據處理設備的處理器以產生一個機器,使得通過計算機或其他可編程數據處理設備的處理器執行的指令產生用于實現在流程圖一個流程或多個流程和/或方框圖一個方框或多個方框中指定的功能的裝置。這些計算機程序指令也可存儲在能引導計算機或其他可編程數據處理設備以特定方式工作的計算機可讀存儲器中,使得存儲在該計算機可讀存儲器中的指令產生包括指令裝置的制造品,該指令裝置實現在流程圖一個流程或多個流程和/或方框圖一個方框或多個方框中指定的功能。這些計算機程序指令也可裝載到計算機或其他可編程數據處理設備上,使得在計算機或其他可編程設備上執行一系列操作步驟以產生計算機實現的處理,從而在計算機或其他可編程設備上執行的指令提供用于實現在流程圖一個流程或多個流程和/或方框圖一個方框或多個方框中指定的功能的步驟。顯然,本領域的技術人員可以對本技術進行各種改動和變型而不脫離本技術的精神和范圍。這樣,倘若本技術的這些修改和變型屬于本技術權利要求及其等同技術的范圍之內,則本技術也意圖包含這些改動和變型在內。
背景技術:
1、隨著網絡技術的不斷發展與普及,應用程序作為網絡技術的產物之一,已經廣泛的應用于各個領域。為了滿足應用程序的使用者們對應用程序不斷升級的使用需求,開發人員需要提高對應用程序的開發和迭代的速度,而跨平臺的應用程序開發方式以及動態化更新的方法逐漸成為技術發展關注的重點領域。
2、目前,跨平臺應用程序開發方式主要是:通過跨平臺應用程序開發框架進行應用程序的開發。flutter開發框架(以下簡稱為flutter)作為跨平臺開發框架中的一種,具有明顯的優勢:首先,其支持全平臺的應用程序的開發,一套代碼庫即可支持移動端操作系統、個人計算機(personal?computer,pc)端操作系統、網頁(web)以及嵌入式平臺等;其次,flutter自繪用戶界面(user?interface,ui)引擎和編譯成原生代碼的方式,使得系統運行時的高性能成為了可能。
3、動態化更新則是指,在不經過應用商店的軟件版本更新審核的情況下,直接更新應用程序中的某一個功能,這樣的更新方式具有輕量、無感、快速的優點。然而,當這樣的動態化更新的方式應用在包含flutter模塊的應用程序上時,卻存在著無法完整地實現全平臺功能更新的問題。
4、以下將以一個運行在安卓操作系統上且包含有由flutter開發的模塊的原生應用程序為例,對上述問題進行說明。
5、在應用程序未更新前,由于flutter模塊對應的代碼直接包含在應用程序的程序代碼中,因此,當flutter模塊的運行涉及到對安卓操作系統的原生功能(如攝像、藍牙、撥號等)的調用時,可以直接通過flutter提供的方法通道(method?channel)完成對原生功能的調用,從而順利的實現flutter模塊的正常運行。
6、當flutter模塊中的部分功能需要進行動態化更新時,一般采取的方式是將待更新的業務代碼編譯成flutter?web界面,以此來提供flutter模塊對應的展示界面以及更新后的功能。然而,flutter?web無法對操作系統的原生功能進行調用,這就導致當待更新的業務代碼的運行涉及調用安卓操作系統的原生功能時,flutter?web將無法順利實現該調用,flutter模塊也就無法通過上述方式實現動態化更新。因此,flutter應用對動態化更新的支持不徹底。
7、為了確保包含flutter模塊的應用程序對動態化更新的完整支持,如何實現flutter?web對原生功能的正常調用,是一個亟待解決的問題。
技術實現思路
1、本技術提供一種調用目標原生功能的方法、裝置和設備及計算機存儲介質,用以實現flutter?web對原生功能的正常調用。
2、第一方面,本技術實施例提供一種調用目標原生功能的方法,應用于原生平臺上原生應用中的第一模塊,第一模塊是基于開發框架頁面flutter?web代碼開發的,原生應用還包括第二模塊,方法包括:
3、響應于針對原生平臺中內嵌的目標原生功能觸發的調用操作,獲得相應的調用信息,其中,調用信息至少包括:從配置信息中獲得的目標原生功能對應的調用接口標識;
4、基于預設的傳輸協議,向第二模塊發送調用信息,以使第二模塊基于調用接口標識獲得對應的調用接口地址,并基于調用接口地址,調用目標原生功能,獲得相應的調用響應;其中,傳輸協議用于約束第一模塊與第二模塊之間關于功能調用與響應的傳輸方式;
5、基于傳輸協議,從第二模塊接收調用響應,并基于調用響應,獲得目標原生功能的調用結果。
6、在一種可能的實施方式中,調用信息還包括:基于調用操作獲得的目標原生功能對應的調用參數;
7、則向第二模塊發送調用信息,以使第二模塊基于調用接口標識獲得對應的調用接口地址,并基于調用接口地址,調用目標原生功能,獲得相應的調用響應,包括:
8、向第二模塊發送調用信息,以使第二模塊基于調用接口地址以及調用參數,調用目標原生功能對調用參數進行處理,獲得相應的調用響應。
9、在一種可能的實施方式中,向第二模塊發送調用信息,以使第二模塊基于調用接口標識獲得對應的調用接口地址,并基于調用接口地址,調用目標原生功能,獲得相應的調用響應,包括:
10、生成與調用操作對應的調用操作標識,并對調用操作標識與調用信息進行關聯處理;
11、向第二模塊發送調用操作標識以及與調用操作標識關聯后的調用信息,以使第二模塊調用目標原生功能,獲得相應的調用響應,并對調用操作標識以及調用響應進行關聯處理;
12、則接收調用響應,包括:
13、基于調用操作標識,接收與調用操作標識關聯后的調用響應。
14、在一種可能的實施方式中,第二模塊包括網絡視圖容器,網絡視圖容器提供的運行環境是基于flutter代碼開發的;
15、則向第二模塊發送調用信息,以使第二模塊基于調用接口標識獲得對應的調用接口地址,并基于調用接口地址,調用目標原生功能,獲得相應的調用響應,包括:
16、向第二模塊中的網絡視圖容器發送調用信息,以使網絡視圖容器基于調用接口標識獲得調用接口地址,并基于調用接口地址以及網絡視圖容器提供的方法通道,調用目標原生功能,獲得相應的調用響應;
17、則從第二模塊接收調用響應,包括:
18、從第二模塊中的網絡視圖容器接收調用響應。
19、在一種可能的實施方式中,向第二模塊中的網絡視圖容器發送調用信息,以使網絡視圖容器基于調用接口標識獲得調用接口地址,包括:
20、向第二模塊中的網絡視圖容器發送調用信息,以使網絡視圖容器基于調用接口標識以及預設的調用接口索引,獲得調用接口地址;其中,
21、調用接口索引是網絡視圖容器基于原生應用的flutter代碼中對原生平臺上的原生功能的注解獲得的。
22、第二方面,本技術實施例提供一種調用目標原生功能的方法,應用于原生平臺上原生應用中的第二模塊,第二模塊是基于原生代碼開發的,原生應用該包括基于flutterweb代碼開發的,方法還包括:
23、基于預設的傳輸協議,從第一模塊接收調用信息,調用信息是第一模塊響應于針對原生平臺中內嵌的目標原生功能觸發的調用操作獲得的,調用信息至少包括:從配置信息中獲得的目標原生功能對應的調用接口標識;傳輸協議用于約束第一模塊與第二模塊之間關于功能調用與響應的傳輸方式;
24、基于調用接口標識獲得對應的調用接口地址,并基于調用接口地址,調用目標原生功能,獲得相應的調用響應;
25、基于傳輸協議,向第一模塊返回調用響應,以使第一模塊基于調用響應,獲得目標原生功能的調用結果。
26、在一種可能的實施方式中,調用信息還包括:基于調用操作獲得的目標原生功能對應的調用參數;
27、則基于調用接口地址,調用目標原生功能,獲得相應的調用響應,包括:
28、基于調用接口地址以及調用參數,調用目標原生功能對調用參數進行處理,獲得相應的調用響應。
29、在一種可能的實施方式中,接收目標原生功能對應的調用接口標識,包括:
30、接收調用操作標識以及與調用操作標識關聯后的調用接口標識;其中,調用操作標識與調用操作對應;
31、則調用目標原生功能,獲得相應的調用響應,包括:
32、調用目標原生功能,獲得相應的調用響應,并對調用操作標識以及調用響應進行關聯處理;
33、則向第一模塊返回調用響應,包括:
34、向第一模塊返回與調用操作標識關聯后的調用響應。
35、在一種可能的實施方式中,第二模塊包括網絡視圖容器,網絡視圖容器提供的運行環境是基于flutter代碼開發的;
36、則基于調用接口地址,調用目標原生功能,獲得相應的調用響應,包括:
37、基于調用接口地址以及網絡視圖容器提供的方法通道,調用目標原生功能,獲得相應的調用響應;
38、則向第一模塊返回調用響應,包括:
39、調用網絡視圖容器向第一模塊返回調用響應。
40、在一種可能的實施方式中,基于調用接口標識獲得對應的調用接口地址,包括:
41、基于調用接口標識以及預設的調用接口索引,獲得調用接口地址;
42、其中,調用接口索引是網絡視圖容器基于原生應用的flutter代碼中對原生平臺上的原生功能的注解獲得的。
43、第三方面,本技術實施例提供一種調用目標原生功能的裝置,應用于原生平臺上原生應用中的第一模塊,第一模塊是基于開發框架頁面flutter?web代碼開發的,原生應用還包括第二模塊,該裝置包括:
44、第一處理單元,用于響應于針對原生平臺中內嵌的目標原生功能觸發的調用操作,獲得相應的調用信息,其中,調用信息至少包括:從配置信息中獲得的目標原生功能對應的調用接口標識;
45、第一發送單元,用于基于預設的傳輸協議,向第二模塊發送調用信息,以使第二模塊基于調用接口標識獲得對應的調用接口地址,并基于調用接口地址,調用目標原生功能,獲得相應的調用響應;其中,傳輸協議用于約束第一模塊與第二模塊之間關于功能調用與響應的傳輸方式;
46、第一接收單元,用于基于傳輸協議,從第二模塊接收調用響應,并基于調用響應,獲得目標原生功能的調用結果。
47、在一種可能的實施方式中,調用信息還包括:基于調用操作獲得的目標原生功能對應的調用參數;
48、則第一發送單元用于向第二模塊發送調用信息,以使第二模塊基于調用接口標識獲得對應的調用接口地址,并基于調用接口地址,調用目標原生功能,獲得相應的調用響應時,具體用于:
49、向第二模塊發送調用信息,以使第二模塊基于調用接口地址以及調用參數,調用目標原生功能對調用參數進行處理,獲得相應的調用響應。
50、在一種可能的實施方式中,第一發送單元用于向第二模塊發送調用信息,以使第二模塊基于調用接口標識獲得對應的調用接口地址,并基于調用接口地址,調用目標原生功能,獲得相應的調用響應時,具體用于:
51、生成與調用操作對應的調用操作標識,并對調用操作標識與調用信息進行關聯處理;
52、向第二模塊發送調用操作標識以及與調用操作標識關聯后的調用信息,以使第二模塊調用目標原生功能,獲得相應的調用響應,并對調用操作標識以及調用響應進行關聯處理;
53、則第一接收單元用于接收調用響應時,具體用于:
54、基于調用操作標識,接收與調用操作標識關聯后的調用響應。
55、在一種可能的實施方式中,第二模塊包括網絡視圖容器,網絡視圖容器提供的運行環境是基于flutter代碼開發的;
56、則第一發送單元用于向第二模塊發送調用信息,以使第二模塊基于調用接口標識獲得對應的調用接口地址,并基于調用接口地址,調用目標原生功能,獲得相應的調用響應時,具體用于:
57、向第二模塊中的網絡視圖容器發送調用信息,以使網絡視圖容器基于調用接口標識獲得調用接口地址,并基于調用接口地址以及網絡視圖容器提供的方法通道,調用目標原生功能,獲得相應的調用響應;
58、則第一接收單元用于從第二模塊接收調用響應時,具體用于:
59、從第二模塊中的網絡視圖容器接收調用響應。
60、在一種可能的實施方式中,第一發送單元用于向第二模塊中的網絡視圖容器發送調用信息,以使網絡視圖容器基于調用接口標識獲得調用接口地址時,具體用于:
61、向第二模塊中的網絡視圖容器發送調用信息,以使網絡視圖容器基于調用接口標識以及預設的調用接口索引,獲得調用接口地址;其中,
62、調用接口索引是網絡視圖容器基于原生應用的flutter代碼中對原生平臺上的原生功能的注解獲得的。
63、第四方面,本技術實施例提供一種調用目標原生功能的裝置,應用于原生平臺上原生應用中的第二模塊,第二模塊是基于原生代碼開發的,原生應用該包括基于flutterweb代碼開發的,該裝置包括:
64、第二接收單元,用于基于預設的傳輸協議,從第一模塊接收調用信息,調用信息是第一模塊響應于針對原生平臺中內嵌的目標原生功能觸發的調用操作獲得的,調用信息至少包括:從配置信息中獲得的目標原生功能對應的調用接口標識;傳輸協議用于約束第一模塊與第二模塊之間關于功能調用與響應的傳輸方式;
65、第二處理單元,用于基于調用接口標識獲得對應的調用接口地址,并基于調用接口地址,調用目標原生功能,獲得相應的調用響應;
66、第二發送單元,用于基于傳輸協議,向第一模塊返回調用響應,以使第一模塊基于調用響應,獲得目標原生功能的調用結果。
67、在一種可能的實施方式中,調用信息還包括:基于調用操作獲得的目標原生功能對應的調用參數;
68、則第二處理單元用于基于調用接口地址,調用目標原生功能,獲得相應的調用響應時,具體用于:
69、基于調用接口地址以及調用參數,調用目標原生功能對調用參數進行處理,獲得相應的調用響應。
70、在一種可能的實施方式中,第二接收單元用于接收目標原生功能對應的調用接口標識時,具體用于:
71、接收調用操作標識以及與調用操作標識關聯后的調用接口標識;其中,調用操作標識與調用操作對應;
72、則第二處理單元用于調用目標原生功能,獲得相應的調用響應時,具體用于:
73、調用目標原生功能,獲得相應的調用響應,并對調用操作標識以及調用響應進行關聯處理;
74、則第二發送單元用于向第一模塊返回調用響應時,具體用于:
75、向第一模塊返回與調用操作標識關聯后的調用響應。
76、在一種可能的實施方式中,第二模塊包括網絡視圖容器,網絡視圖容器提供的運行環境是基于flutter代碼開發的;
77、則第二處理單元用于基于調用接口地址,調用目標原生功能,獲得相應的調用響應時,具體用于:
78、基于調用接口地址以及網絡視圖容器提供的方法通道,調用目標原生功能,獲得相應的調用響應;
79、則第二發送單元用于向第一模塊返回調用響應時,具體用于:
80、調用網絡視圖容器向第一模塊返回調用響應。
81、在一種可能的實施方式中,第二處理單元用于基于調用接口標識獲得對應的調用接口地址時,具體用于:
82、基于調用接口標識以及預設的調用接口索引,獲得調用接口地址;
83、其中,調用接口索引是網絡視圖容器基于原生應用的flutter代碼中對原生平臺上的原生功能的注解獲得的。
84、第五方面,本技術實施例提供一種調用目標原生功能的設備,包括:存儲器和處理器,其中,存儲器,用于存儲計算機指令;處理器,用于執行計算機指令以實現本技術實施例提供的調用目標原生功能的方法的步驟。
85、第六方面,本技術實施例提供一種計算機可讀存儲介質,計算機可讀存儲介質存儲有計算機指令,計算機指令被處理器執行時實現本技術實施例提供的調用目標原生功能的方法的步驟。
86、第七方面,本技術實施例提供一種計算機程序產品,其包括計算機指令,計算機指令存儲在計算機可讀存儲介質中;當電子設備的處理器從計算機可讀存儲介質讀取計算機指令時,處理器執行計算機指令,使得電子設備執行本技術實施例提供的調用目標原生功能的方法的步驟。
87、本技術有益效果如下:
88、本技術實施例提供了一種調用目標原生功能的方法、裝置、設備及存儲介質,該方法采用預設的傳輸協議實現了原生平臺上運行的原生應用中第一模塊與第二模塊之間的溝通,接著,第二模塊則可以基于來自第一模塊的代用信息,調用原生平臺中內嵌的原生功能,并將得到的調用響應返回至第一模塊,從而實現第一模塊對原生功能的調用。
89、在本技術中,通過預設的傳輸協議實現第一模塊與第二模塊之間的溝通,既確保了flutter?web端與原生端雙端之間跨平臺溝通的可行性,還可以使得開發者根據開發需求,自行約定定制化的傳輸協議,靈活性高,可拓展性強。
90、并且,第二模塊在實現對目標原生功能的調用這一過程時,調用了其包含基于flutter代碼開發的網絡視圖容器,利用該網絡視圖容器提供的方法通道實現對原生平臺中內嵌的原生功能的調用。這樣,結合flutter跨平臺的優勢,開發人員僅使用flutter代碼對網絡視圖容器進行一次開發,即可確保該網絡視圖容器可以運行在各種不同的原生平臺上的原生應用中,大大地降低了開發應用程序時耗費的人力與時間成本,有效地提高了應用程序的開發效率。
91、另外,第二模塊在確定調用接口標識對應的調用接口地址時,可以從預設的調用接口索引中查找對應的調用接口地址,而該調用接口索引則是網絡視圖容器基于原生應用的flutter代碼中對原生平臺上的原生功能的注解獲得的。如此,只需開發人員在對原生應用進行開發時,在flutter模塊對應的代碼中增加對原生功能的注解,后續原生應用即可通過自動掃描的方式,基于該注解生成原生應用中所有原生功能對應的調用接口索引,后續再進行接口調用時可以直接利用該索引得到對應的調用接口地址,一次性地滿足了flutter模塊對原生功能的調用需求。
92、在上述本技術提供的方案中,待更新的業務代碼可以通過flutter官方提供的編譯成flutter?web功能,以web的形式直接運行在原生應用中,然后通過本技術提供的調用目標原生功能的方法實現flutter?web對原生功能的調用。如此,本方案無需解析待更新的業務代碼對應的抽象語法樹,不存在對flutter語法支持不全的問題,也不存在flutter開發框架版本升級后與現有原生應用不兼容的問題,方案的可實施性高。
93、本技術的其它特征和優點將在隨后的說明書中闡述,并且,部分地從說明書中變得顯而易見,或者通過實施本技術而了解。本技術的目的和其他優點可通過在所寫的說明書、權利要求書、以及附圖中所特別指出的結構來實現和獲得。