我正在开发一个需要自定义协议的 Electron 应用程序。我希望能够使用 Electron cli 在开发环境中对此进行测试。我目前正在通过以下方式注册协议:
const protocolRegisterSuccess = app.setAsDefaultProtocolClient('my-protocol');
Run Code Online (Sandbox Code Playgroud)
然后我启动我的开发电子应用程序并在 Chrome 中electron main.bundle.js打开。my-protocol://test我希望它打开我当前正在运行的开发应用程序,或者至少启动另一个应用程序,但是它会启动一个新的电子应用程序,显示默认的电子屏幕(“要运行本地应用程序,请执行此命令...”)。
我正在 Mac 上进行开发,当我查看时,~/Library/Preferences/com.apple.LaunchServices/com.apple.launchservices.secure.plist我可以看到协议已注册并且应用程序 ID 设置为com.github.electron. 看起来这是由电子 CLI 启动的电子可执行文件的应用程序 ID,用于在本地运行我的应用程序(存在于./node_modules/electron/dist/Electron.app/Contents/MacOS/Electron),我相信这就是协议不起作用的原因。
有什么办法可以让协议在本地运行吗?我可以更新应用程序标识符(通过某些配置参数或重建可执行文件)吗?是否可以指定传递给在 Mac 上启动的可执行文件的参数?我不需要行为与完全打包的应用程序完全相同,但我希望能够在开发中测试基本的自定义协议。
谢谢你!
我目前正在使用ORMLite在Android上使用SQLite数据库.作为其中的一部分,我从后端服务器下载了一堆数据,我想将这些数据以与后端服务器上完全相同的格式添加到SQLite数据库中(即ID相同,等等) .
所以,我的问题是,如果我填充我的数据库条目对象(我们将其称为设备),包括通过setId()的设备的generatedId /主键字段,然后我运行DAO.create()与该设备条目将该ID是否正确保存?我试过这种方式,在我看来情况并非如此.如果是这种情况,我会再次尝试并寻找其他问题,但是通过代码的前几次传递我无法找到.基本上,如果我在具有ID设置的数据库对象上调用DAO.create(),那么该ID将被发送到数据库,如果不是,那么如何插入已填写主键值的行?
谢谢!
我花了一些时间研究Android与蓝牙设备通信的能力,蓝牙设备旨在通过PC上的蓝牙COM端口进行通信.我一直无法找到明确的答案,所以我想我会在这里问.我想确保Android可以实现这一点.
我是蓝牙通信的新手,但到目前为止我所做的研究让我看到了RFCOMM,这听起来有点像我想要的.不幸的是,我仍然无法确认这实际上是可行的.
任何帮助/资源将非常感谢.
我的梁管道中有一个 BigQueryIO.Write 阶段,它是通过调用构建的.withJsonSchema(String):
inputStream.apply(
"save-to-bigquery",
BigQueryIO.<Event>write()
.withJsonSchema(jsonSchema)
.to((ValueInSingleWindow<Event> input) ->
new TableDestination(
"table_name$" + PARTITION_SELECTOR.print(input.getValue().getMetadata().getTimestamp()),
null)
)
.withFormatFunction((ConsumerApiRequest event) ->
new TableRow()
.set("id", event.getMetadata().getUuid())
.set("insertId", event.getMetadata().getUuid())
.set("account_id", event.getAccountId())
...
.set("timestamp", ISODateTimeFormat.dateHourMinuteSecondMillis()
.print(event.getMetadata().getTimestamp())))
.withFailedInsertRetryPolicy(InsertRetryPolicy.retryTransientErrors())
.withWriteDisposition(BigQueryIO.Write.WriteDisposition.WRITE_APPEND)
.withCreateDisposition(BigQueryIO.Write.CreateDisposition.CREATE_NEVER)
);
Run Code Online (Sandbox Code Playgroud)
我正在通过DataflowRunner这个阶段运行它,并且在执行这个阶段时我收到以下错误:
java.lang.IllegalArgumentException:
com.google.api.client.json.JsonParser.parseValue(JsonParser.java:889)
com.google.api.client.json.JsonParser.parse(JsonParser.java:382)
com.google.api.client.json.JsonParser.parse(JsonParser.java:336)
com.google.api.client.json.JsonParser.parse(JsonParser.java:312)
com.google.api.client.json.JsonFactory.fromString(JsonFactory.java:187)
org.apache.beam.sdk.io.gcp.bigquery.BigQueryHelpers.fromJsonString(BigQueryHelpers.java:156)
org.apache.beam.sdk.io.gcp.bigquery.DynamicDestinationsHelpers$ConstantSchemaDestinations.getSchema(DynamicDestinationsHelpers.java:163)
org.apache.beam.sdk.io.gcp.bigquery.DynamicDestinationsHelpers$ConstantSchemaDestinations.getSchema(DynamicDestinationsHelpers.java:150)
org.apache.beam.sdk.io.gcp.bigquery.CreateTables$1.processElement(CreateTables.java:103)
Caused by: java.lang.IllegalArgumentException: expected collection or array type but got class com.google.api.services.bigquery.model.TableSchema
com.google.api.client.repackaged.com.google.common.base.Preconditions.checkArgument(Preconditions.java:148)
com.google.api.client.util.Preconditions.checkArgument(Preconditions.java:69)
com.google.api.client.json.JsonParser.parseValue(JsonParser.java:723)
com.google.api.client.json.JsonParser.parse(JsonParser.java:382)
com.google.api.client.json.JsonParser.parse(JsonParser.java:336)
com.google.api.client.json.JsonParser.parse(JsonParser.java:312)
com.google.api.client.json.JsonFactory.fromString(JsonFactory.java:187)
org.apache.beam.sdk.io.gcp.bigquery.BigQueryHelpers.fromJsonString(BigQueryHelpers.java:156)
org.apache.beam.sdk.io.gcp.bigquery.DynamicDestinationsHelpers$ConstantSchemaDestinations.getSchema(DynamicDestinationsHelpers.java:163)
org.apache.beam.sdk.io.gcp.bigquery.DynamicDestinationsHelpers$ConstantSchemaDestinations.getSchema(DynamicDestinationsHelpers.java:150)
org.apache.beam.sdk.io.gcp.bigquery.CreateTables$1.processElement(CreateTables.java:103)
org.apache.beam.sdk.io.gcp.bigquery.CreateTables$1$DoFnInvoker.invokeProcessElement(Unknown Source)
org.apache.beam.runners.core.SimpleDoFnRunner.invokeProcessElement(SimpleDoFnRunner.java:177)
org.apache.beam.runners.core.SimpleDoFnRunner.processElement(SimpleDoFnRunner.java:141)
com.google.cloud.dataflow.worker.SimpleParDoFn.processElement(SimpleParDoFn.java:233)
com.google.cloud.dataflow.worker.util.common.worker.ParDoOperation.process(ParDoOperation.java:48) …Run Code Online (Sandbox Code Playgroud) 我正在用Qt制作一个简单的游戏,我想在用户切换到另一个窗口时暂停游戏(这可能是通过最小化它或不小心点击它旁边的窗口等).我的游戏包含在QMainWindow中,因此我希望能够检测到失去焦点的时间.
我为此尝试了几种不同的方法,但我没有成功.我首先尝试重载QMainWindow的focusOutEvent,但是这个方法只在我第一次用setFocus给窗口焦点时调用.我还尝试重载窗口的事件(QEvent*)方法来检查QEvent :: ApplicationActive和QEvent :: ApplicationDeactivate.
我会发布我的QMainWindow的代码,但没有太多要显示,我实际上只是试图实现这两个方法,但都没有被调用.我没有做任何其他设置这些方法(也许我错过了一步?).
有谁知道确定你的QMainWindow是否"失去焦点"的好方法?
我在虚拟环境中运行Django(使用virtualenv),我正在尝试添加自定义开发环境设置文件,以便在我开发时简化应用程序配置.我的计划是用两行代码完成
if os.environ.get('DEVELOPMENT', None):
from login import settings_dev
Run Code Online (Sandbox Code Playgroud)
我也试着import settings_def和from login.settings_dev import *.我的settings_dev.py文件与settings.py文件位于同一目录中,我的应用程序位于名为login的文件夹中.当我运行时,python login/manage.py syncdb我收到此错误:
Error: Import by filename is not supported.
Run Code Online (Sandbox Code Playgroud)
我的搜索不断提出DJANGO_SETTINGS_MODULE(虽然我不确定它是如何发挥所有这一点 - 第一个Django app:]),所以只是一个FYI它在我的settings.py文件中设置如下:
os.environ['DJANGO_SETTINGS_MODULE'] = 'login.settings'
Run Code Online (Sandbox Code Playgroud)
我也尝试在我的终端中导出它,但我得到了同样的错误.
有谁知道我怎么能解决这个/我在这里做错了什么?