Vue與原生APP的相互交互

現在好多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()
    }
  }
}
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章