小编Kim*_*chy的帖子

从ExtJS自动扫描配置文件

我从头开始创建ExtJS 6.2应用程序.我对这个框架很新,所以我可以使用脚手架的应用程序.

设计的应用程序应该具有单独的"插件"(在代码/包级别上)将完全分离.我们也有某种路由器,它会为每个视图名称(路径/控制器/模型/附加信息)注册一些信息.我希望它以类似于模板方法设计模式的方式工作.当我添加新的插件/模块时,我还添加了具有特定名称模式的文件 - 例如.ModuleACMEGlobalConf.我想要ExtJS应用程序(或组件/类 - 无论如何)以某种方式扫描整个类树以获取具有此类名称模式的文件,读取它们的内容然后放入我的路由器config/global namespace变量.

问题是 - 实现这一目标的最佳方法是什么?

更新:

我想要的结构:

MyAppFolder  
---Module1  
.....MyConfigGlobal1.js  
---Module2  
.....MyConfigGlobal2.js  
---  
---Router.js  -> I want this file to scan whole 'MyAppFolder' tree, find files with *ConfigGlobal*.js pattern, read them and store in global namespace  

MyConfigGl​​obal1.js

var config = { configProp1:  'test', configProp2:  'test2'}
Run Code Online (Sandbox Code Playgroud)

MyConfigGl​​obal2.js

var config = {configProp3: 'test3', configProp4: 'test4'}
Run Code Online (Sandbox Code Playgroud)

Router.js

var configsMap = EXT.SOMETHING.FIND.ME.CLASSES.FROM.TREE.WITH.NAME('*MyConfigGlobal*')
Run Code Online (Sandbox Code Playgroud)

我希望路由器加载所有东西(它可以在类级别,而不是文件级别) - 无论是一个类还是一百个.使用此解决方案,我不必更改Router.js - 只需在我正在创建的新模块中添加另一个配置类.所以没有必要重新测试以前的模块.

但如果我在路由器中有这样的东西:

var requiredConfigs = ['MyGlobalConfig1.js','MyGlobalConfig2.js']
Run Code Online (Sandbox Code Playgroud)

我即将在路由器中将此第三个文件/类添加到此列表中,这意味着该策略已损坏,我必须重新测试module1和module2,因为它们以某种方式对它们共同的代码进行了修改.

javascript extjs

19
推荐指数
1
解决办法
215
查看次数

在WebRTC for iOS中测量麦克风级别

我有一个WebRTC iOS应用程序.我有AVAudioSessionRTCAudioSource.我需要检测麦克风何时开始接收响亮的声音(比如一个人开始讲话时),类似于hark在带有AudioContext的浏览器中所做的事情.我怎样才能检测到它或得到的东西,类似于可等来测定流AVCaptureAudioChannelAVCaptureAudioDataOutput

audio ios webrtc

13
推荐指数
1
解决办法
1042
查看次数

Jackson deserialisation/TypeReference用于动态加载的pojo类

我需要获取JSON输入Pojo实例,我使用Jackson 2库,下面的readValue方法可以使用typeReferencing反序列化:

POJO_ClassName p = mapper.readValue(new TypeReference< POJO_ClassName >() {});
Run Code Online (Sandbox Code Playgroud)

但问题是,作为POJO被创建并加载在运行时动态,我怎么JSONPOJO实例/对象,因为我没有对上述说法完全限定类(POJO_ClassName)的名字吗?

注意:我使用jsonSchema2pojoPOJO在运行时生成类.

这是代码片段,我POJO用于JSON 在运行时生成并尝试

  String classPath="com.EnrichmentService.Thread72"; 
     String classLocation = System.getProperty("user.dir")
                         + "/src/main/java"; JCodeModel codeModel = new JCodeModel();

     final RuleFactory ruleFactory = new RuleFactory(config,
                         new Jackson2Annotator(config), new SchemaStore());

     final SchemaMapper mapperSchema = new SchemaMapper(ruleFactory,
                         new SchemaGenerator());

     mapperSchema.generate(codeModel, "EsRootDoc",classPath, json);

     codeModel.build(new File(classLocation));  // generates pojo classes

     // Till above jsonSchema2Pojo pojo generation all …
Run Code Online (Sandbox Code Playgroud)

java json jackson jsonschema2pojo

12
推荐指数
1
解决办法
2912
查看次数

PayPal API使用Harvest和Freshbooks等网站代表其用户接受付款?

看起来这两个网站(Freshbooks和Harvest)只能通过收集用户的PayPal电子邮件地址代表其用户接受PayPal付款,并且付款直接发送给用户(而不是流经Freshbooks和Harvest自己的帐户).PayPal API支持哪些功能?

我没有看到任何迹象表明这在当前的API文档中是可行的 https://developer.paypal.com/docs/api/

paypal

11
推荐指数
1
解决办法
142
查看次数

PowerShell可以用来点击angularjs按钮吗?

<div class="w-btn" ng-click="vm.callbacks.compareAll();" ng-if="vm.folderData.projects.length > 0 &amp;&amp; vm.noneSelectedProjects" tabindex="0"><i class="glyphicon glyphicon-transfer btn-icon"></i> Report from all</div>
Run Code Online (Sandbox Code Playgroud)

我需要使用Powershell单击该按钮.该页面上有多个div,其中class ="w-btn",但只有一个具有ng-click,其中包含全部比较.

单击该按钮时,它将更改页面上的另一个标记,如下所示

<a href="/data/project/export/projects-tasks?projectIds[]=103473&amp;projectIds[]=103474&amp;projectIds[]=106186&amp;projectIds[]=108395&amp;projectIds[]=110653&amp;projectIds[]=110657" target="_self" class="inline-btn pull-right" ng-if="vm.projects.length > 0">
Run Code Online (Sandbox Code Playgroud)

第一个按钮会在项目添加时更改项目的href.我必须编写此脚本以单击第一个按钮,然后使用生成的href作为我的wget中链接的一部分

到目前为止,我还没有得到任何工作

$Link = 'https://url.com/folder/2880'
$html = Invoke-WebRequest -Uri $Link -UseDefaultCredentials
$btnclick = $html.getElementsByTagName("div") | Where-object{$_.Name -like 'ng-click="vm.callbacks.compareAll();"' }
Run Code Online (Sandbox Code Playgroud)

当我然后写一个控制台来查看$ btnclick是什么时我得到一个错误:

Method invocation failed because [Microsoft.PowerShell.Commands.HtmlWebResponseObject] does not contain a method named 'getElementsByTagName'
Run Code Online (Sandbox Code Playgroud)

最终,我想我会喜欢$btnclick.Click()并做另一个getElement,href所以我可以拉

/data/project/export/projects-tasks?projectIds[]=103473&amp;projectIds[]=103474&amp;projectIds[]=106186&amp;projectIds[]=108395&amp;projectIds[]=110653&amp;projectIds[]=110657
Run Code Online (Sandbox Code Playgroud)

分出来的.

任何帮助完成这项工作表示赞赏.高级概述是我需要从网页中单击一个角度js按钮,然后从生成的href标记中提取一个URL以用于wget.

html powershell

11
推荐指数
1
解决办法
1220
查看次数

为什么在firebase onAuthStateChanged中完成活动时,最近的应用程序中没有屏幕截图

我有一个非常基本的splashscreen活动:

@Override
protected void onCreate(@Nullable Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_start);

    FirebaseAnalytics.getInstance(this);


    mAuth = FirebaseAuth.getInstance();
    mAuth.addAuthStateListener(new FirebaseAuth.AuthStateListener() {
        @Override
        public void onAuthStateChanged(@NonNull FirebaseAuth firebaseAuth) {
            FirebaseUser user = firebaseAuth.getCurrentUser();
            if (user != null) {
                FirebaseAuth.getInstance().removeAuthStateListener(this);
                startActivity(new Intent(StartActivity.this, MainActivity.class));
                finish();
            }
        }
    });
}
Run Code Online (Sandbox Code Playgroud)

这个启动画面打开我的MainActivity.当我关闭此活动时,这是最近的应用程序中的屏幕截图:

在此输入图像描述

好像它制作截图太晚了,导致这个嵌套的最近应用截图.这也发生在实际设备上.我怎样才能解决这种奇怪的行为?

活动清单:

<activity
    android:name="activities.StartActivity"
    android:label="@string/app_name"
    android:screenOrientation="portrait">
    <intent-filter>
        <action android:name="android.intent.action.MAIN" />

        <category android:name="android.intent.category.LAUNCHER" />
    </intent-filter>
</activity>

<activity
    android:name="activities.MainActivity"
    android:label="@string/app_name"
    android:screenOrientation="portrait"
    android:launchMode="singleTask">
</activity>
Run Code Online (Sandbox Code Playgroud)

问题似乎不在于launchMode.我一直有同样的行为.即使拆除了lauchmode.

它与回调绝对有关.直接启动活动时,没有问题.

编辑:

我找到了一个解决方案.使用延迟启动活动会解决它.虽然硬编码延迟不是很好.

new Handler().postDelayed(new Runnable() {
    @Override
    public void run() …
Run Code Online (Sandbox Code Playgroud)

android firebase firebase-authentication

10
推荐指数
1
解决办法
248
查看次数

MVC 5 - 预编译视图仅适用于命令提示符

我有一个奇怪的问题,希望有人可以帮助我.我有一台新的笔记本电脑,我试图在具有预编译视图的新机器上发布相同的ASP.NET MVC 5项目.但是,当我选中"发布时预编译 "选项进行发布时,它不会创建预编译视图.现在,如果我复制它运行的确切命令并在命令提示符中运行它,则会创建预编译视图.

这是详细信息.两台计算机都使用Visual Studio 2013 Update 5进行Windows 10周年更新(版本1607).使用相同的发布配置文件在旧计算机上发布应用程序会生成预编译的视图.在新计算机上,从" 发布Web "对话框中发布时可以正常运行,但不会生成预编译视图.然后我将这个确切的命令复制到VS用于预编译的命令提示符:

C:\windows\Microsoft.NET\Framework\v4.0.30319\aspnet_compiler.exe -v / -p C:\MyApp\obj\Release\AspnetCompileMerge\Source -c C:\MyApp\obj\Release\AspnetCompileMerge\TempBuildDir
Run Code Online (Sandbox Code Playgroud)

当我运行它时,它在TempBuildDir\bin目录中创建了预编译的视图!

我可以在机器之间想到的唯一区别是Windows更新.

有任何想法吗?谢谢.

msbuild visual-studio-2013 asp.net-mvc-5 windows-10

10
推荐指数
1
解决办法
341
查看次数

在StartLogin函数中传递几个参数

我正在构建一个自定义连接器,通过OAuth2连接到我们的API.这样我们就可以使用api作为powerbi的数据源.

    // Resource definition
        Resource = [
            Description = "MyAPI",
            Type = "Custom",
            MakeResourcePath = (env) => env,
            ParseResourcePath = (env) => {env},
            Authentication = [OAuth=[StartLogin = StartLogin, FinishLogin = FinishLogin, Refresh = Refresh]],
    ......
Icons = [
            Icon16 = { Extension.Contents("MyAPI10.png"), Extension.Contents("MyAPI20.png") }
        ],
        Label = "MyAPI"
    ]
in
    Extension.Module("MyAPI", { Resource })
Run Code Online (Sandbox Code Playgroud)

我使用MakeResourcePath和ParseResourcePath传递Environment参数(在power bi site/desktop中将其作为用户的输入).传递给StartLoginOAuth授权调用.

  StartLogin = (env, state, display) =>
        let
            resourceUrl = getOAuthUrlFromEnvName(env) & "/oauth/authorize",
            AuthorizeUrl = resourceUrl & "?" & Uri.BuildQueryString([ …
Run Code Online (Sandbox Code Playgroud)

m oauth-2.0 powerbi powerbi-embedded powerbi-datasource

9
推荐指数
1
解决办法
337
查看次数

Windows Update 1703之后的UWP后台传输异常0x80072EE4

我有一个带有后台传输的Windows应用商店应用程序 来下载内容,它一直运行到现在.但是,一些客户报告说,在他们将PC更新为Creators Update(1703)之后,下载停止工作会产生错误HRESULT: 0x80072EE4(由我的应用程序从异常中翻译).

有类似的报告:HRESULT 0x80072EE4在使用BackgroundDownloader但在我的情况下,它发生在Windows Update 1703之后.奇怪的是,这个问题不会发生在我的开发者PC上,其中已经安装了相同的更新.

有没有人对问题的根源有任何线索或找到任何解决方法?

exception background-transfer uwp creators-update

6
推荐指数
1
解决办法
241
查看次数

防止iframe的src中的外部文件被缓存(使用CloudFlare)

我想做一个像plunker一样的游乐场.我刚刚注意到一个非常奇怪的生产行为(使用active modeCloudflare),而它的效果很好localhost.

通过iframe,操场预览index_internal.html可能包含链接到其他文件(例如,.html,.js,.css).iframe能够解释外部链接,如<script src="script.js"></script>.

因此,每当用户script.js在编辑器上修改他们的文件(例如)时,我的程序会将新文件保存到服务器上的临时文件夹中,然后刷新iframe iframe.src = iframe.src,它运行良好localhost.

但是,我意识到,在生产中,浏览器始终保持加载初始化 script.js,即使用户在编辑器中修改它并且在服务器的文件夹中写入了新版本.例如,我看到的Dev Tools ==> Network始终是初始版本script.js,而我可以script.js通过less左侧检查服务器中保存的新版本.

有谁知道为什么会这样?以及如何解决它?

在此输入图像描述

编辑1:

我尝试了以下,但没有用script.js:

var iframe = document.getElementById('myiframe');
iframe.contentWindow.location.reload(true);
iframe.contentDocument.location.reload(true);
iframe.contentWindow.location.href = iframe.contentWindow.location.href
iframe.contentWindow.src = iframe.contentWindow.src
iframe.contentWindow.location.replace(iframe.contentWindow.location.href)
Run Code Online (Sandbox Code Playgroud)

我试图添加一个版本,它可以使用index_internal.html,但没有重新加载script.js:

var newSrc = iframe.src.split('?')[0] 
iframe.src = newSrc + "?uid=" + Math.floor((Math.random() …
Run Code Online (Sandbox Code Playgroud)

iframe caching browser-cache html-head cloudflare

5
推荐指数
1
解决办法
534
查看次数