原生App裏面的H5實現微信分享

1. 接到需求時我以爲這個東西還很差作麼,就兩天寫完了,萬萬沒想到啊
一開始老大給我一個文件告訴我這裏面有分享的代碼,你按照這個寫。我天真的覺得這下全
    有了,就是差個人代碼實現了。吭哧吭哧寫完了,把代碼改了一下。臥槽,放到手機裏不起
    用,我google了一下,發現尼瑪給個人是js-SDK,適用於微信系的開發,在咱們混合不適用
    。我去找老大去了,又給我一套,我發現只有ios能夠,Android不適用啊,沒辦法又去找,
    此次是我直接找的Android的開發,由於ios和Android的方法調用不一樣。
複製代碼
2. 其實很簡單的,就是使用jsBridge,經過橋鏈接的方式實現js與native的通信,js調用native的分享放法就能夠了。
//註冊橋
function connectWebViewJavascriptBridge(callback) {
  if (window.WebViewJavascriptBridge) {
    callback(WebViewJavascriptBridge)
  } else {
    document.addEventListener('WebViewJavascriptBridgeReady', function () {
      callback(WebViewJavascriptBridge)
    }, false)
  }

}

//方法綁定
connectWebViewJavascriptBridge(function(bridge) {
  // iOS掃描方法綁定
  bridge.init(function(message, responseCallback) {//初始化橋接器
    responseCallback({});
  })

  bridge.registerHandler('scanfJavascriptHandler',function(data) {// scanfJavascriptHandler
    // alert(JSON.stringify(data));
    console.log(data.backData);
  })
});
複製代碼

就是在js裏全是回調函數,後端的代碼我看了一下,可是沒有權限拉取,因此沒辦法粘貼一部分代碼。 下面的代碼是實現分享的代碼javascript

function scanCode(options) {
  if (browser.versions.android) {
    javascript: android.share(options.img,options.title,options.title,options.url);

  } else if (browser.versions.ios || browser.versions.iPhone || browser.versions.iPad) {
    let data = {
      'type': 1,
      'img': options.img,
      'title': options.title,
      'url': options.url,
      'subtitle': options.title
    }
  // 使用橋接器執行ios方法;
  window.WebViewJavascriptBridge && window.WebViewJavascriptBridge.send(data, function (responseData) {
  });
}
}
複製代碼

網上有一些例子,可是我感受我這種實現是最方便,最簡單的。java

相關文章
相關標籤/搜索