本發(fā)明涉及手機應用開發(fā)領域,尤其涉及一種實現Hybrid App的HTML與Native交互的方法。
背景技術:
Hybrid App是指Web與Native相結合的App,它看起來就是一個Native App,但部分功能使用UIWebView加載HTML的網頁實現。兩種不同實現方式之間不能直接交互,所以不光要解決HTML與Native兩個不同環(huán)境之間的交互,還要解決兩個平臺自身的不同機制問題。不同平臺使用不同的方式讓HTML與native交互,會降低開發(fā)效果和代碼可維護性變差,造成額外的工作量和不容易定位問題。
技術實現要素:
本發(fā)明的目的在于提供一種一種實現Hybrid App的HTML與Native交互的方法,從而解決現有技術中存在的前述問題。
為了實現上述目的,本發(fā)明采用的技術方案如下:
一種實現Hybrid App的HTML與Native交互的方法,包括以下步驟:
S1,Android:Javascript調用Android:Native;
S2,所述Android:Native調用所述Android:Javascript;
S3,iOS:Javascript調用iOS:Native;
S4,所述iOS:Native調用所述iOS:Javascript。
優(yōu)選的,所述S1具體包括:Webview使用addJavascriptInterface方法向HTML注入Android:Javascript方法,HTML直接調用注入方法。
優(yōu)選的,所述S2具體包括:所述Webview使用loadurl方法直接調用HTML的Android:Javascript方法。
優(yōu)選的,所述S3具體包括:使用iOS:Javascript創(chuàng)建一個透明的iframe,設置所述ifame的src為自定義的協議,當所述ifame的src更改時,UIWebview先回調其delegate的Webview:shouldStartLoadWithRequest:navigationType:方 法,攔截src內容并解析處理。
優(yōu)選的,所述S4具體包括:使用UIWebview的stringByEvaluatingJavaScriptFromString方法直接調用HTML中的Javascript方法。
本發(fā)明的有益效果是:使用HTML+Native開發(fā)的功能,不僅解決了HTML與Native兩個不同環(huán)境之間的交互,也解決了Android和iOS平臺自身機制的不同障礙,在服務器端更新HTML功能,使得無法享用新版本的用戶也能體驗到新功能。
具體實施方式
為了使本發(fā)明的目的、技術方案及優(yōu)點更加清楚明白,以下對本發(fā)明進行進一步詳細說明。應當理解,此處所描述的具體實施方式僅僅用以解釋本發(fā)明,并不用于限定本發(fā)明。
一種實現Hybrid App的HTML與Native交互的方法,其特征在于,包括以下步驟:
S1,Android:Javascript調用Android:Native;
S2,所述Android:Native調用所述Android:Javascript;
S3,iOS:Javascript調用iOS:Native;
S4,所述iOS:Native調用所述iOS:Javascript。
優(yōu)選的,所述S1具體包括:Webview使用addJavascriptInterface方法向HTML注入Android:Javascript方法,HTML直接調用注入方法。
優(yōu)選的,所述S2具體包括:所述Webview使用loadurl方法直接調用HTML的Android:Javascript方法。
優(yōu)選的,所述S3具體包括:使用iOS:Javascript創(chuàng)建一個透明的iframe,設置所述ifame的src為自定義的協議,當所述ifame的src更改時,UIWebview先回調其delegate的Webview:shouldStartLoadWithRequest:navigationType:方法,攔截src內容并解析處理。
優(yōu)選的,所述S4具體包括:使用UIWebview的stringByEvaluatingJavaScriptFromString方法直接調用HTML中的Javascript方法。
具體地,
Android:
Javascript調用Native:Webview使用addJavascriptInterface方法向HTML注入Javascript方法,HTML可直接調用注入方法。
Native調用Javascript:Webview使用loadurl方法直接調用HTML的Javascript方法。
iOS:
Javascript調用Native:使用Javascript創(chuàng)建一個透明的iframe,設置這個ifame的src為自定義的協議,而ifame的src更改時,UIWebView會先回調其delegate的Webview:shouldStartLoadWithRequest:navigationType:方法,攔截src內容并解析處理。
Native調用Javascript:使用UIWebView的stringByEvaluatingJavaScriptFromString方法直接條用HTML中的Javascript方法
通過采用本發(fā)明公開的上述技術方案,得到了如下有益的效果:
使用HTML+Native開發(fā)的功能,不僅解決了HTML與Native兩個不同環(huán)境之間的交互,也解決了Android和iOS平臺自身機制的不同障礙,在服務器端更新HTML功能,使得無法享用新版本的用戶也能體驗到新功能。
以上所述僅是本發(fā)明的優(yōu)選實施方式,應當指出,對于本技術領域的普通技術人員來說,在不脫離本發(fā)明原理的前提下,還可以做出若干改進和潤飾,這些改進和潤飾也應視本發(fā)明的保護范圍。