void con_Tapped(object sender, Windows.UI.Xaml.Input.TappedRoutedEventArgs e) { doInvokeResult _invokeResult = new doInvokeResult(this.model.UniqueKey); _invokeResult.SetResultText((sender as FrameworkElement).Tag.ToString()); this.model.EventCenter.FireEvent("touch", _invokeResult); }
void btn_Tapped(object sender, Windows.UI.Xaml.Input.TappedRoutedEventArgs e) { doInvokeResult _invokeResult = this.model.CurrentPage.ScriptEngine.CreateInvokeResult(this.model.UniqueKey); this.model.EventCenter.FireEvent("touchup", _invokeResult); this.model.EventCenter.FireEvent("touch", _invokeResult); }
private void fireevent(string id) { doInvokeResult _invokeResult = new doInvokeResult(this.model.UniqueKey); _invokeResult.SetResultText(id); this.model.EventCenter.FireEvent("viewChanged", _invokeResult); }
private void showView(doJsonNode _dictParas, doIScriptEngine _scriptEngine, doInvokeResult _invokeResult) { canvas.Children.Clear(); string id = _dictParas.GetOneText("id", ""); if (!viewmap.ContainsKey(id)) { return; } doSourceFile _uiFile = _scriptEngine.CurrentApp.SourceFS.GetSourceByFileName(viewmap[id]); if (_uiFile == null) { throw new Exception("试图打开一个无效的页面文件:" + viewmap[id]); } string content = _uiFile.TxtContent(); doUIContainer _doUIContainer = new doUIContainer(model.CurrentPage); _doUIContainer.loadFromContent(content, null, null); _doUIContainer.loadDefalutScriptFile(viewmap[id]); FrameworkElement fe = _doUIContainer.RootView.CurrentComponentUIView as FrameworkElement; fe.Margin = new Thickness(doMyTools.setrealitymarginleft(_doUIContainer.RootView.X), doMyTools.setrealitymargintop(_doUIContainer.RootView.Y), 0, 0); fe.Width = doMyTools.setrealitywidth(_doUIContainer.RootView.Width); fe.Height = doMyTools.setrealityheight(_doUIContainer.RootView.Height); canvas.Children.Add(fe); fireevent(id); }
private void getStatus(doJsonNode _dictParas, doIScriptEngine _scriptEngine, doInvokeResult _invokeResult) { var hostn = NetworkInformation.GetHostNames(); var hostname = hostn.Where(t => t.Type == Windows.Networking.HostNameType.Ipv4).FirstOrDefault(); _invokeResult.SetResultText(hostname.DisplayName); }
private void toEnd(doJsonNode _dictParas, doIScriptEngine _scriptEngine, doInvokeResult _invokeResult) { try { } catch (Exception _err) { doServiceContainer.LogEngine.WriteError("doScrollView toEnd \n", _err); } }
//处理成员方法 public override bool InvokeSyncMethod(string _methodName, doJsonNode _dictParas, doIScriptEngine _scriptEngine, doInvokeResult _invokeResult) { if (base.InvokeSyncMethod(_methodName, _dictParas, _scriptEngine, _invokeResult)) { return(true); } return(false); }
private void getInfo(doJsonNode _dictParas, doIScriptEngine _scriptEngine, doInvokeResult _invokeResult) { try { doJsonNode jn = new doJsonNode(); JsonObject jo = doMyTools.lsSync["resolution"].FuncDo(null) as JsonObject; var bounds = Window.Current.Bounds; //设备ID(IMEI)(GSM手机的 IMEI 和 CDMA手机的 MEID,ios的uuid,phone8 根据开发者获取唯一id). jn.SetOneText("deviceId", doMyTools.getdeviceid()); //deviceName:设备名称 jn.SetOneText("deviceName", doMyTools.getdevicename()); //OS:操作系统版本 jn.SetOneText("OS", doMyTools.EnvironmentOs); //OSVersion:操作系统版本号 jn.SetOneText("OS", "8.1"); //resolutionH:水平分辨率 jn.SetOneText("resolutionH", jo.GetNamedString("resolutionH")); //resolutionV:垂直分辨率 jn.SetOneText("resolutionV", jo.GetNamedString("resolutionV")); //dpiH:水平像素密度 jn.SetOneText("dpiH", DisplayInformation.GetForCurrentView().RawDpiX.ToString()); //dpiV:垂直像素密度 jn.SetOneText("dpiV", DisplayInformation.GetForCurrentView().RawDpiY.ToString()); //screenH:水平屏幕宽度(dip) jn.SetOneText("screenH", bounds.Width.ToString()); //screenV:垂直屏幕宽度(dip) jn.SetOneText("screenV", bounds.Height.ToString()); //phoneType:手机机型(GT-15908) jn.SetOneText("phoneType", getdevicetype()); //phoneNumber:手机号码 //jn.SetOneText("phoneNumber", ""); //communicationType:运营商类型 //simSerialNumber:SIM卡的序列号 //jn.SetOneText("simSerialNumber", ""); //IMSI:IMSI(国际移动用户识别码) //jn.SetOneText("IMSI", ""); //sdkVersion:获取手机内存大小 //jn.SetOneText("sdkVersion", "8"); if (_dictParas.GetOneText("name", "") == "all" || string.IsNullOrEmpty(_dictParas.GetOneText("name", ""))) { _invokeResult.SetResultNode(jn); } else { string data = jn.GetOneText(_dictParas.GetOneText("name", ""), ""); _invokeResult.SetResultText(data); } } catch (Exception _err) { doServiceContainer.LogEngine.WriteError("doDevice getInfo \n", _err); } }
private void vibrate(doJsonNode _dictParas, doIScriptEngine _scriptEngine, doInvokeResult _invokeResult) { try { if (doMyTools.lsSync.ContainsKey("vibration")) { doMyTools.lsSync["vibration"].FuncDo(null); } } catch (Exception _err) { doServiceContainer.LogEngine.WriteError("doDevice vibrate \n", _err); } }
private void addViews(doJsonNode _dictParas, doIScriptEngine _scriptEngine, doInvokeResult _invokeResult) { List <doJsonValue> dataArray = _dictParas.GetOneArray("data"); foreach (var childData in dataArray) { string id = childData.GetNode().GetOneText("id", ""); string viewPath = childData.GetNode().GetOneText("path", ""); if (!viewmap.ContainsKey(id)) { viewmap.Add(id, viewPath); } } }
private void flash(doJsonNode _dictParas, doIScriptEngine _scriptEngine, doInvokeResult _invokeResult) { try { string format = _dictParas.GetOneText("status", ""); if (format == "on") { doCore.Helper.doCaptureOperator.OpenTorch(); } else { doCore.Helper.doCaptureOperator.CloseTorch(); } } catch (Exception _err) { doServiceContainer.LogEngine.WriteError("doDevice flash \n", _err); } }
private void getIP(doJsonNode _dictParas, doIScriptEngine _scriptEngine, doInvokeResult _invokeResult) { ConnectionProfile conf = NetworkInformation.GetInternetConnectionProfile(); if (conf == null) { _invokeResult.SetResultText("none"); } else { if (conf.IsWlanConnectionProfile) { _invokeResult.SetResultText("wifi"); } else if (conf.IsWwanConnectionProfile) { _invokeResult.SetResultText("2g/3g"); } else { _invokeResult.SetResultText("unknow"); } } }
private void getOperators(doJsonNode _dictParas, doIScriptEngine _scriptEngine, doInvokeResult _invokeResult) { ConnectionProfile conf = NetworkInformation.GetInternetConnectionProfile(); var guid = conf.ServiceProviderGuid; if (guid == null) { _invokeResult.SetResultText("没有手机卡"); } _invokeResult.SetResultText(guid.ToString()); }
/// <summary> /// 同步方法,JS脚本调用该组件对象方法时会被调用,可以根据_methodName调用相应的接口实现方法; /// </summary> /// <param name="_methodName">方法名称</param> /// <param name="_dictParas">参数(K,V)</param> /// <param name="_scriptEngine">当前Page JS上下文环境对象</param> /// <param name="_invokeResult">用于返回方法结果对象</param> /// <returns></returns> public override bool InvokeSyncMethod(string _methodName, doCore.Helper.JsonParse.doJsonNode _dictParas, doCore.Interface.doIScriptEngine _scriptEngine, doInvokeResult _invokeResult) { if ("getIP".Equals(_methodName)) { this.getIP(_dictParas, _scriptEngine, _invokeResult); return(true); } if ("getOperators".Equals(_methodName)) { this.getOperators(_dictParas, _scriptEngine, _invokeResult); return(true); } if ("getStatus".Equals(_methodName)) { this.getStatus(_dictParas, _scriptEngine, _invokeResult); return(true); } return(base.InvokeSyncMethod(_methodName, _dictParas, _scriptEngine, _invokeResult)); }
/// <summary> /// 异步方法(通常都处理些耗时操作,避免UI线程阻塞),JS脚本调用该组件对象方法时会被调用, /// 可以根据_methodName调用相应的接口实现方法; /// </summary> /// <param name="_methodName">方法名称</param> /// <param name="_dictParas">参数(K,V)</param> /// <param name="_scriptEngine">当前page JS上下文环境</param> /// <param name="_callbackFuncName">回调函数名</param> /// <returns></returns> public override async Task <bool> InvokeAsyncMethod(string _methodName, doCore.Helper.JsonParse.doJsonNode _dictParas, doCore.Interface.doIScriptEngine _scriptEngine, string _callbackFuncName) { doInvokeResult _invokeResult = new doInvokeResult(this.UniqueKey); return(await base.InvokeAsyncMethod(_methodName, _dictParas, _scriptEngine, _callbackFuncName)); }
/// <summary> /// 同步方法,JS脚本调用该组件对象方法时会被调用,可以根据_methodName调用相应的接口实现方法; /// </summary> /// <param name="_methodName">方法名称</param> /// <param name="_dictParas">参数(K,V)</param> /// <param name="_scriptEngine">当前Page JS上下文环境对象</param> /// <param name="_invokeResult">用于返回方法结果对象</param> /// <returns></returns> public bool InvokeSyncMethod(string _methodName, doJsonNode _dictParas, doIScriptEngine _scriptEngine, doInvokeResult _invokeResult) { switch (_methodName) { case "addViews": this.addViews(_dictParas, _scriptEngine, _invokeResult); return(true); case "removeView": this.removeView(_dictParas, _scriptEngine, _invokeResult); return(true); case "showView": this.showView(_dictParas, _scriptEngine, _invokeResult); return(true); } return(false); }
void btn_Click(object sender, RoutedEventArgs e) { doInvokeResult _invokeResult = this.model.CurrentPage.ScriptEngine.CreateInvokeResult(this.model.UniqueKey); this.model.EventCenter.FireEvent("touchdown", _invokeResult); }
public bool InvokeSyncMethod(string _methodName, doJsonNode _dictParas, doIScriptEngine _scriptEngine, doInvokeResult _invokeResult) { if ("toBegin".Equals(_methodName)) { this.toBegin(_dictParas, _scriptEngine, _invokeResult); return(true); } if ("toEnd".Equals(_methodName)) { this.toEnd(_dictParas, _scriptEngine, _invokeResult); return(true); } return(false); }
/// <summary> /// 同步方法,JS脚本调用该组件对象方法时会被调用,可以根据_methodName调用相应的接口实现方法; /// </summary> /// <param name="_methodName">方法名称</param> /// <param name="_dictParas">参数(K,V)</param> /// <param name="_scriptEngine">当前Page JS上下文环境对象</param> /// <param name="_invokeResult">用于返回方法结果对象</param> /// <returns></returns> public bool InvokeSyncMethod(string _methodName, doJsonNode _dictParas, doIScriptEngine _scriptEngine, doInvokeResult _invokeResult) { return(false); }
private async void beep(doJsonNode _dictParas, doIScriptEngine _scriptEngine, doInvokeResult _invokeResult) { try { MediaElement me = new MediaElement(); var file = await Windows.Storage.StorageFile.GetFileFromApplicationUriAsync(new Uri("ms-appx:///doBase/Resource/aa.mp3")); var stream = await file.OpenReadAsync(); me.SetSource(stream, ""); me.Play(); } catch (Exception _err) { doServiceContainer.LogEngine.WriteError("doDevice beep \n", _err); } }
private void removeView(doJsonNode _dictParas, doIScriptEngine _scriptEngine, doInvokeResult _invokeResult) { string id = _dictParas.GetOneText("id", ""); if (viewmap.ContainsKey(id)) { viewmap.Remove(id); } }
/// <summary> /// 同步方法,JS脚本调用该组件对象方法时会被调用,可以根据_methodName调用相应的接口实现方法; /// </summary> /// <param name="_methodName">方法名称</param> /// <param name="_dictParas">参数(K,V)</param> /// <param name="_scriptEngine">当前Page JS上下文环境对象</param> /// <param name="_invokeResult">用于返回方法结果对象</param> /// <returns></returns> public override bool InvokeSyncMethod(string _methodName, doCore.Helper.JsonParse.doJsonNode _dictParas, doCore.Interface.doIScriptEngine _scriptEngine, doInvokeResult _invokeResult) { if ("beep".Equals(_methodName)) { this.beep(_dictParas, _scriptEngine, _invokeResult); return(true); } if ("flash".Equals(_methodName)) { this.flash(_dictParas, _scriptEngine, _invokeResult); return(true); } if ("getInfo".Equals(_methodName)) { this.getInfo(_dictParas, _scriptEngine, _invokeResult); return(true); } if ("vibrate".Equals(_methodName)) { this.vibrate(_dictParas, _scriptEngine, _invokeResult); return(true); } return(base.InvokeSyncMethod(_methodName, _dictParas, _scriptEngine, _invokeResult)); }
/// <summary> /// 异步方法(通常都处理些耗时操作,避免UI线程阻塞),JS脚本调用该组件对象方法时会被调用, /// 可以根据_methodName调用相应的接口实现方法;#如何执行异步方法回调?可以通过如下方法: /// _scriptEngine.callback(_callbackFuncName, _invokeResult); /// 参数解释:@_callbackFuncName回调函数名,@_invokeResult传递回调函数参数对象; /// 获取doInvokeResult对象方式new doInvokeResult(model.UniqueKey); /// </summary> /// <param name="_methodName">方法名称</param> /// <param name="_dictParas">参数(K,V)</param> /// <param name="_scriptEngine">当前page JS上下文环境</param> /// <param name="_callbackFuncName">回调函数名</param> /// <returns></returns> public bool InvokeAsyncMethod(string _methodName, doJsonNode _dictParas, doIScriptEngine _scriptEngine, string _callbackFuncName) { doInvokeResult _invokeResult = _scriptEngine.CreateInvokeResult(this.model.UniqueKey); return(false); }
void ts_Toggled(object sender, RoutedEventArgs e) { doInvokeResult _invokeResult = new doInvokeResult(this.model.UniqueKey); this.model.EventCenter.FireEvent("changed", _invokeResult); }