現在好多APP都采用了Hybrid的開發模式,這種模式特別適合那些內容變動更新較大的APP,從而使得開發和日常維護過程變得集中式、更簡短、更經濟高效,不需要純原生頻繁發布。但有利肯定有弊咯,性能方面能稍微差一點,還有就是兩者之間的交互問題。美團、愛奇藝、微信等知名移動應用,都是采用Hybrid App開發模式。Hybrid開發已成為未來的一種發展趨勢。
1、原生APP與Vue交互
場景:原生的頭部標題欄,內容為H5頁面。現在需要在原生頭部增加一個時間帥選功能,原生篩選好時間后調用H5的查詢方法。
mounted () {
/* 將nativeCallToSearch方法綁定到window下面,提供給外部調用 */
window.nativeCallToSearch = (res) => {
this.nativeCallToSearch(res)
}
}
methods () {
/**
* 原生時間篩選
* @param {string} searchDate 查詢的時間
*/
nativeCallToSearch (searchDate) {
// do something...
}
}
2、Vue與原生APP交互
場景:H5頁面中涉及分享功能(用H5來做分享坑太多),H5實現具體分享的內容,原生只負責分享操作。
methods () {
/**
* 分享微信好友
*/
goWXFriend () {
this.$loading.show()
if (this.androidOrIos === 'android') {
/* eslint-disable */
/* 安卓識別不了js對象 */
javascript: share.shareWX(this.shareObj.link, this.shareObj.linkTitle, this.shareObj.linkContent, this.shareObj.linkImgUrl)
/* eslint-enable */
this.$loading.hide()
} else if (this.androidOrIos === 'ios') {
/* 將對象轉為字符串 */
window.webkit.messageHandlers.shareWX.postMessage(JSON.stringify(this.shareObj))
this.$loading.hide()
}
}
}