YDOpenHardware 0.2.8

YDOpenHardware 0.2.8

测试已测试
语言语言 Obj-CObjective C
许可证 MIT
发布时间最新版本2017年8月

felix 维护。



 
依赖
Masonry~> 1.0.2
BabyBluetooth~> 0.7.0
WebViewJavascriptBridge~> 6.0.2
SVProgressHUD~> 2.1.2
NJKWebViewProgress~> 0.2.3
YYModel~> 1.0.4
MJRefresh~> 3.1.12
Reachability~> 3.2
 

  • felix

YDOpenHardwarePod

YDOpenHardware 库,用于将蓝牙等硬件的缓存或存储数据

YDOpenHardware

适用于悦动圈跑步开放平台的简单demo,问题咨询:qq:295235985 邮箱:[email protected]

第三方为我们提供一个通用的 framework,即 YDOpenHardwarePod

#S3.html(该文件用于与 oc 交互)定义在 HTML 文件中调用 oc 的方法

1、此模块不可修改

    function setupWebViewJavascriptBridge(callback) {
        if (window.WebViewJavascriptBridge) { return callback(WebViewJavascriptBridge); }
        if (window.WVJBCallbacks) { return window.WVJBCallbacks.push(callback); }
        window.WVJBCallbacks = [callback];
        var WVJBIframe = document.createElement('iframe');
        WVJBIframe.style.display = 'none';
        WVJBIframe.src = 'https://__bridge_loaded__';
        document.documentElement.appendChild(WVJBIframe);
        setTimeout(function() { document.documentElement.removeChild(WVJBIframe) }, 0)
    }

2、调用最后一个方法来完成必要的业务操作

    setupWebViewJavascriptBridge(function(bridge) {
		…………………………
		to do the business necessary
	}

3、sj 调用 oc 方法

 var callbackButton = document.getElementById('scanBtn')
 callbackButton.innerHTML = 'scanBtn'
 callbackButton.onclick = function(e) {
     e.preventDefault();
     log('JS calling handler "scan peripheral"')
     // window.location.href='./peripheralList.html';
     bridge.callHandler('onScanS3Click', 'S3', function(response) {
        log('JS got response', response)
    });
 };

4、oc 调用 js 方法,因此我们必须注册该方法

 bridge.registerHandler('deliverCharacteristic', function(data, responseCallback) {
 	log('data'+data+':'+data.uuid+data.value.value0 +':'+data.value.value1+':'+data.value.value2+':'+data.value.value3+'.');

 	var stepLabel = document.getElementById('stepLabel');
 	// stepLabel.innerHTML = 
 	var calorieLabel = document.getElementById('calorieLabel');
 	// calorieLabel.innerHTMLp =
 	var distanceLabel = document.getElementById('distanceLabel');
 	// distanceLabel.innerHTML = 

    responseCallback(responseData);
});

5、数据传输协议:我们必须通过 json 格式传输数据,您可以传输 json 对象或数据字符串等,但我们推荐 key:value 格式,这样更简单,更容易使用。如下所示 oc 的数据

@{
@"uuid":c.UUID.UUIDString,
@"value":@{
         @"value0":value0,
         @"value1":value1,
         @"value2":value2,
         @"value3":value3
         }
};

更多信息请查看 S3.html