Exemplo n.º 1
0
        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);
        }
Exemplo n.º 2
0
 /// <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)
     {
     }
     return(false);
 }
Exemplo n.º 3
0
        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);
        }
Exemplo n.º 4
0
        private void removeView(doJsonNode _dictParas, doIScriptEngine _scriptEngine, doInvokeResult _invokeResult)
        {
            string id = _dictParas.GetOneText("id", "");

            if (viewmap.ContainsKey(id))
            {
                viewmap.Remove(id);
            }
        }
Exemplo n.º 5
0
        public override async Task <bool> InvokeAsyncMethod(string _methodName, doJsonNode _dictParas,
                                                            doIScriptEngine _scriptEngine, string _callbackFuncName)
        {
            if (await base.InvokeAsyncMethod(_methodName, _dictParas, _scriptEngine, _callbackFuncName))
            {
                return(true);
            }

            return(false);
        }
Exemplo n.º 6
0
 private void toEnd(doJsonNode _dictParas, doIScriptEngine _scriptEngine, doInvokeResult _invokeResult)
 {
     try
     {
     }
     catch (Exception _err)
     {
         doServiceContainer.LogEngine.WriteError("doScrollView toEnd \n", _err);
     }
 }
Exemplo n.º 7
0
        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());
        }
Exemplo n.º 8
0
        //处理成员方法
        public override bool InvokeSyncMethod(string _methodName, doJsonNode _dictParas,
                                              doIScriptEngine _scriptEngine, doInvokeResult _invokeResult)
        {
            if (base.InvokeSyncMethod(_methodName, _dictParas, _scriptEngine, _invokeResult))
            {
                return(true);
            }


            return(false);
        }
Exemplo n.º 9
0
 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);
     }
 }
Exemplo n.º 10
0
        /// <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);
        }
Exemplo n.º 11
0
 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);
 }
Exemplo n.º 12
0
 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);
     }
 }
Exemplo n.º 13
0
        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);
                }
            }
        }
Exemplo n.º 14
0
        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);
            }
        }
Exemplo n.º 15
0
 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);
     }
 }
Exemplo n.º 16
0
        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");
                }
            }
        }
Exemplo n.º 17
0
        /// <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);
        }
Exemplo n.º 18
0
 /// <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)
 {
     return(false);
 }