原生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

相关文章
相关标签/搜索