小编tim*_*Tao的帖子

在Cordova插件中以编程方式添加IOS功能

我为Cordova IOS开发了一个插件,用于使用App Groups.

该插件需要在XCode中的Targets - > 下激活App Groups Capability 并选择其中一个.CapabilitiesApp Groups

如果我手动激活它,它运行良好,但我想以编程方式,井内plugin.xml或自定义钩子激活它.

有人实现了吗?

xcode node.js ios cordova cordova-plugins

18
推荐指数
1
解决办法
978
查看次数

CNContact标识符中的":ABPerson"字符串是什么?

我的iOS应用程序会不时检查联系人并将新内容导入到自己的数据库中.

我通过identifier字段检查该联系人是否已存在,通常由UUID填充:

CNContactStore *store = [CNContactStore new];
[store requestAccessForEntityType:CNEntityTypeContacts completionHandler:^(BOOL granted, NSError *error) {
if (granted) {
    NSArray *keys = @[CNContactNamePrefixKey,
        CNContactGivenNameKey,
        CNContactMiddleNameKey,
        CNContactFamilyNameKey,
        CNContactInstantMessageAddressesKey];
        NSString *containerId = store.defaultContainerIdentifier;
        NSPredicate *predicate = [CNContact predicateForContactsInContainerWithIdentifier:containerId];
        NSArray *cnContacts = [store unifiedContactsMatchingPredicate:predicate keysToFetch:keys error:&err];            
        for (CNContact *contact in cnContacts) {
            ...
            NSString *contactId = [contact identifier];
            [fetchRequest setPredicate:[NSPredicate predicateWithFormat:@"uuid == %@", contactId]];

    ...

}
Run Code Online (Sandbox Code Playgroud)

有时标识符除了UUID包含:ABPerson字符串(例如9326A125-3C0A-494F-9E50-BBFCF1140EF0:ABPerson),并且此类联系仅出现一次.下次出现相同的联系,但与另一个UUID和没有:ABPerson.

因此,我的联系人导入器认为他们是2个不同的联系人并保存2次.

:ABPersonCNContact标识符中的字符串是什么?
我知道带有类的AddressBook框架ABPerson,但是我使用Contacts框架来处理设备联系人,为什么会:ABPerson …

objective-c ios cncontact

18
推荐指数
1
解决办法
1182
查看次数

文档列表API回归:更新文档(带转换)会丢失图像

使用文档列表API时,Google Docs转换似乎最近出现了问题.对现有文档条目所做的更新将无法正确转换为Google文档格式,并且不会显示文档中的图像.

重现步骤

  1. 我有一个.docx文件,有几行文字和一个图像.

  2. 使用文档列表API,我将文件作为NEW条目上传(转换为ON),它工作正常.我可以在Google文档中打开转换后的文档,看起来很不错.

  3. 接下来,使用像API这样的文档,我再次将文件作为 UPDATE原始条目上载(打开转换).现在,当我在Google Docs中打开转换后的文档时,图像丢失了.有一个空白矩形,旋转繁忙指示符出现在图像所在的位置.

附加信息

因此,当问题只发生在更新现有条目.作为全新条目上传的文件没有此问题.

这必须在过去24小时左右打破...我有一个现有的应用程序工作正常,现在它更新的所有文件都缺少他们的图像.在后端有什么东西得到更新导致它破坏了吗?

我已经使用包含各种图像的各种.docx和.doc文件对此进行了测试.

请帮助......这已经完全破了一个星期了.我想知道这是否是谷歌工程师所知道的问题,以及是否有人在研究它.

google-docs-api google-drive-api

17
推荐指数
1
解决办法
282
查看次数

无法使用Homebrew在Mavericks上安装MySQL

我在使用Homebrew将MySQL安装到Mavericks上时遇到了麻烦.我不是任何一个命令行忍者,因为似乎没有在OS X上安装MySQL的明确指令集,所以我从这两个地方拼凑了指令:

http://madebyhoundstooth.com/blog/install-mysql-on-mountain-lion-with-homebrew/

http://benjsicam.me/blog/how-to-install-mysql-on-mac-os-x-using-homebrew-tutorial/

FWIW,我能够使用这两个网站在Mountain Lion上成功安装MySQL.

我将在下面详细说明我的安装步骤,然后在我得到的错误中找到最低点.希望有一个比我拥有更多命令行知识的人能够发现我的错误.

首先,根据我读过的网站的建议,我卸载了MySQL,以防以前的版本碰巧在那里.我是这样做的(顺便说一下,这一切预先假设我已经成功安装了Homebrew):

brew remove mysql
cd /
brew cleanup
launchctl unload -w ~/Library/LaunchAgents/homebrew.mxcl.mysql.plist
rm ~/Library/LaunchAgents/homebrew.mxcl.mysql.plist
sudo rm -rf /usr/local/var/mysql
Run Code Online (Sandbox Code Playgroud)

当我跑第四行时,我得到了这个结果:

launchctl: Couldn't stat("[my-home-directory]/Library/LaunchAgents/homebrew.mxcl.mysql.plist"): No such file or directory
Run Code Online (Sandbox Code Playgroud)

不确定这是否重要; 也许卸载过程已经解决了这个问题,或者也许该文件从未出现在那里.无论哪种方式,它似乎不是一个大问题,一切似乎正确卸载.

那么我安装,像这样:

brew install mysql
ln -sfv /usr/local/opt/mysql/*.plist ~/Library/LaunchAgents
launchctl load ~/Library/LaunchAgents/homebrew.mxcl.mysql.plist
mysql.server start
Run Code Online (Sandbox Code Playgroud)

为了它的价值,我在运行上面的第三行后收到了"已经加载"的消息.当我跑步的时候mysql.server start,我觉得. SUCCESS! 那似乎很好,对吧?

然后我跑了这两行:

unset TMPDIR
mysql_install_db --verbose --user=`root` --basedir="$(brew --prefix mysql)" --datadir=/usr/local/var/mysql --tmpdir=/tmp
Run Code Online (Sandbox Code Playgroud)

......在这一点上,我在终端中得到了稳定的信息:

[ERROR] InnoDB: Unable to lock ./ibdata1, error: 35
Run Code Online (Sandbox Code Playgroud)

我找到了这篇文章,但是它指的是一个MAMP安装,这不是,当我在我的Mac上搜索它引用的两个.pid文件时,我空了.

http://aralbalkan.com/1931/

所以我有点难过.在前面的另一个安装尝试中,我试图在php.ini中配置default_socket,基于我上面列出的第一个URL,我mysql.sock …

php mysql macos homebrew osx-mavericks

17
推荐指数
1
解决办法
7326
查看次数

是否有针对Google OAuth2的取消授权回调?

我的PHP应用程序允许用户通过Facebook和Google登录,效果很好,但我也想知道用户何时撤销/取消授权访问权限.

对于Facebook,可以很容易地在高级设置下指定取消授权回调URL,Facebook将使用用户的Facebook ID调用.对于Google,我找到了认证指南,该指南讨论了撤销访问权限,但未提及回调.

当用户撤消访问权限时,如何让Google告诉我的应用?(即点击此处的"撤销访问" 按钮)

callback oauth-2.0

17
推荐指数
1
解决办法
1099
查看次数

现在有办法将TVP传递给.Net Core上的精致吗?

我正在使用.net核心和dapper,第一个没有DataTables,第二个使用它们用于TVP.

我试图将a转换List<T>为a List<SqlDataRecord>,使用此列表创建一个SqlParameter然后将其转换为DynamicParameter但遗憾的是我得到了:The member of type Microsoft.SqlServer.Server.SqlDataRecord cannot be used as a parameter value

UPDATE

玩了一下之后IDynamicParameters,我就开始了.

扩展方法 IEnumerable

public static DynamicWrapper toTVP<T>(this IEnumerable<T> enumerable, string tableName, string typeName)
{
    List<SqlDataRecord> records = new List<SqlDataRecord>();
    var properties = typeof(T).GetProperties().Where(p => Mapper.TypeToSQLMap.ContainsKey(p.PropertyType));
    var definitions = properties.Select(p => Mapper.TypeToMetaData(p.Name, p.PropertyType)).ToArray();
    foreach (var item in enumerable)
    {
        var values = properties.Select(p => p.GetValue(item, null)).ToArray();
        var schema = new SqlDataRecord(definitions);
        schema.SetValues(values);
        records.Add(schema);
    }

    SqlParameter result = new SqlParameter(tableName, SqlDbType.Structured); …
Run Code Online (Sandbox Code Playgroud)

c# sql reflection dapper .net-core

17
推荐指数
1
解决办法
2994
查看次数

蓝牙配置文件在蓝牙系统中的位置

我的问题非常基础.我需要知道所有蓝牙配置文件在蓝牙堆栈中加载了哪些HID,HFP或HSP?它是在主机层还是蓝牙硬件芯片组中,如USB加密狗/模块或主机和芯片组端?

根据我的理解,我们可以使用像BlueZ这样的软件包在主机端实现蓝牙配置文件,但同时连接到主机的蓝牙芯片组应该在其芯片组内部需要某种固件和逻辑(如CSVD,A-law).

在BlueZ Android软件包doc中找到的引用:"HFP中的宽带语音支持要求BT芯片采用mSBC编解码器".这意味着只有当BT芯片组提供像mSBC这样的低级支持时,Host层才能实现该Profile.

我的答案是这样的:"如果BT芯片组配备了支持配置文件'X'的低级固件,我们可以在主机层上构建任何蓝牙配置文件'X'.请同意或不同意我的理解.

我理解的PFA图表 配置文件的位置及其低级固件

我需要选择与Raspberry Pi兼容的USB蓝牙适配器,并使用BlueZ自定义HID和HFP.

提前感谢所有聪明的头脑!

bluetooth profiles

17
推荐指数
1
解决办法
499
查看次数

Dynamic lambda expression with dynamic parameter

Given this class

public class Foo
{
    public string Name { get; set; }
}
Run Code Online (Sandbox Code Playgroud)

This method (in some other class)...

private Func<Foo, string> Compile(string body)
{
    ParameterExpression prm = Expression.Parameter(typeof(Foo), "foo");
    LambdaExpression exp = DynamicExpressionParser.ParseLambda(new[] { prm }, typeof(string), body);
    return (Func<Foo, string>)exp.Compile();
}
Run Code Online (Sandbox Code Playgroud)

Will take the right hand side of a lambda expression and give me back a delegate. So if it is called like this:

Foo f = new Foo { Name = "Hamilton Academicals" };
//foo …
Run Code Online (Sandbox Code Playgroud)

.net c# lambda dynamic

17
推荐指数
1
解决办法
1696
查看次数

如何使用黄瓜测试HTML5页面中的错误条件?

我正在使用Cucumber测试Web应用程序行为(在引擎盖下使用Selenium和Watir).我的网络应用程序有HTML5页面,并使用新的"必需"属性.如果我有一个带有必填字段的数据输入表单,并且我将该表单提交为空白字段,我想验证Web应用程序是否正确响应错误情况.

不幸的是,当使用HTML5 Web浏览器进行测试时,Cucumber似乎无法通过Web驱动程序访问在失败的字段验证中弹出的错误消息.在任何情况下,表单都不会提交,页面仍保留在数据输入表单中.

另一方面,当测试无头或使用不符合HTML5的浏览器时,表单可能会提交,允许我的Web应用程序捕获错误并将用户发送回表单页面并显示错误消息.

在第二种情况下,我可以轻松地测试错误消息是否存在,因为它是页面中传递的HTML的一部分.我的问题是我无法看到如何编写单个测试场景来验证无头和HTML5浏览器情况下的错误情况.

对于Selenium和Watir web驱动程序的当前状态,这可能是不可能的.但如果有人知道如何验证HTML5"必需"错误弹出消息,那将是一个很大的帮助.

编辑2012-06-02:

这是一个示例页面,其中包含HTML5浏览器警告的示例.

有一个必需的文本和选择,一个显示内部提示文本的文本框,以及一个带有正则表达式输入验证的文本框.该页面没有任何CSS或javascript来混淆问题,它只是vanilla HTML5.有关完整细分,请参阅w3schools页面有关HTML5字段属性的信息.表单提交一个简单的CGI脚本,它只是回显表单输入,假设表单成功.提交失败将保留在示例表单页面上.

bdd html5 cucumber

15
推荐指数
1
解决办法
2027
查看次数

任务com.google.firebase.av已从java.util.concurrent.ThreadPoolExecutor中拒绝

朋友们,

我想知道这个错误.我在Android中使用Firebase.完整的错误是:

Fatal Exception: java.util.concurrent.RejectedExecutionException
Task com.google.firebase.a.v@61b9a00 rejected from java.util.concurrent.ThreadPoolExecutor@eacc239[Running, pool size = 2, active threads = 2, queued tasks = 128, completed tasks = 0]
Run Code Online (Sandbox Code Playgroud)

错误发生在DataChangea内部Fragment,谁正在阅读信息以填充RecyclerView.

我想知道为什么会发生这种情况以及我应该如何避免这种错误.

谢谢你,对不起,因为我知道我没有详细解释这个问题,但我真的不知道为什么会这样.

编辑

这是我意识到它显示错误的代码.这一切都始于我试图同时上传超过5张图片.

if (!pet.isUploaded()) {
    File image = new File(pet.getPicPath());
    final StorageReference referenceImage = storageRef.child("Adopcion" + "/" + pet.getOwner() + "/" + "Adopcion" + "/" + pet.getName() + pet.getAnimalID());

    Uri image2 = Uri.parse("");
    if (image.exists()) {
        image2 = Uri.fromFile(new File(image.toURI()));
    }

    UploadTask taskImage = referenceImage.putFile(image2); …
Run Code Online (Sandbox Code Playgroud)

java android firebase firebase-realtime-database

15
推荐指数
1
解决办法
1253
查看次数