小编Aud*_*ius的帖子

jQuery:添加dom元素(如果它不存在)

很长的问题

是否可以在尚未存在的情况下添加DOM元素?

我已经实现了这样的要求:

var ins = $("a[@id='iframeUrl']");
ins.siblings('#myIframe:first').remove().end().parent().prepend('<iframe id="myIframe"  src="'+ins.attr("href")+'"></iframe>');
Run Code Online (Sandbox Code Playgroud)

是否有可能用更优雅的东西取代第二条线?喜欢ins.siblings('#myIframe:first').is().not().parent().prepend......

我可以检查ins.siblings('#myIframe:first').length然后添加IFrame,但好奇心接管了,我试图用尽可能少的语句来做到这一点.

javascript jquery dom

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

自定义帐户验证器.从设备中删除帐户后清理

有没有办法获得某种通知/广播/等.从"帐户和同步设置"中删除自定义帐户时?

我拥有的应用程序可以为设备上的多个用户提供便利(这是企业用途)并使用单个SQLite数据库.假设我在设备上为我的应用程序创建多个用户,并使用仅与这两个用户相关的数据填充数据库.我的问题是,如果其中一个用户从"帐户和同步设置"中删除,我无法清理SD卡上的数据库和/或某些外部文件.

我可以在冗余表中复制用户信息,并将其与注册帐户进行比较,然后如果表中的用户信息与AccountManager中的Account []数组不匹配,则从数据库中删除用户数据.感觉脏了我.

android accountmanager

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

C#中的十进制ToString()转换问题

我面临的一个问题,当我尝试转换decimal?string.情景是

decimal decimalValue = .1211;
string value = (decimalValue * 100).ToString();
Run Code Online (Sandbox Code Playgroud)

当前结果:值= 12.1100

预期结果:值= 12.11

请让我知道,这可能是什么原因.

c# string decimal

16
推荐指数
2
解决办法
3万
查看次数

从笔记本电脑控制您的手机

想法:为你的Android手机创建一个遥控器.

原因:我喜欢在连接扬声器的基座站的手机上听音乐.现在有时我想要上调/下调音量,更改歌曲等等.所以我需要解锁手机,找到正在播放音乐的应用程序(音乐播放器,网络电台应用程序等).有时我会设法取消电话,或者只是弄乱一些东西,通常是这个问题.

所以我想从笔记本电脑(在wifi上)控制我的手机(在数据连接上,而不是wifi上).

我调查了几种方法,并希望得到一些建议:

  1. 使用XMPP.这很好,因为我可以使用很多免费的XMPP服务.我试过的两个库(都基于smack)工作得很好(Flow aSmack port和Beem smack port).我可以在设备上自动创建新用户,并提供我(用户)将在桌面端输入以链接两个设备的一些ID /密码组合.

  2. 使用JXTA.应该是下一个真正的交易,但可能是一个矫枉过正.我想在某处运行一个集合和中继服务器(需要托管以解决防火墙/ NAT)并创建一个受密码保护的对等组.使用设备唯一ID和密码(带有组)链接到桌面应用程序.(可以从这里下载一本很好的电子书来解释p2p和JXTA ).

  3. 使用C2DM.可能是答案,但通知交付有时可能需要几秒钟才能交付,并且没有反馈机制.

到目前为止,第一个解决方案看起来更容易选择.创建自定义扩展或仅在两个端点之间创建聊天,并使用它来中继命令/消息.但我想知道我是否会滥用XMPP系统?

JXTA听起来很棒,但从我所做的所有阅读中可以看出,它是专为群组通信和服务共享而设计的,而不是连接两个端点的解决方案.

你们有什么感想?我也欢迎所有的建议.

更新我不想远程接听电话并以交互方式控制它.我想在笔记本电脑和手机之间建立连接(套接字连接),即使它们都位于防火墙,路由器后面的不同网络上.有了这个,我可以定义一个协议来向手机发出命令(低音量,静音,启动应用程序等).

更新2我正在给JXTA一个机会.这是一个很好的解决方案,但缺乏文档是一个下降.得到了VPS FreeBSD服务器来测试RDV/relay方面的东西.我会继续更新这个问题,因为它可能对其他人有帮助.

更新3更多阅读:

更新4 到目前为止,我没有足够的时间继续我的项目.我找到了一个有趣的项目.目前项目所有者正在重新编写他们的库,您可以在此处跟踪他们的进度.

java android p2p

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

Java自定义注释和动态加载

我正在尝试开发用于数据库同步的ORM,并决定给Java反射.我有一个库,它定义了这样的同步注释

@Retention(RetentionPolicy.RUNTIME)
@Target(ElementType.TYPE)
@Inherited
public @interface Synchronised {
    String tableName();
    SynchronisationType synchronisationType();
}
Run Code Online (Sandbox Code Playgroud)

在android项目中,我使用此注释来标记模型类

@Synchronised(tableName="UserAccounts", synchronisationType=SynchronisationType.DownloadOnly)
public class UserAccount {   
    @SynchronisedField(fieldName="CompanyFk")
    private int companyId;
    @SynchronisedField(fieldName="Id")
    private int userId;
    @SynchronisedField(fieldName="Username")
    private String username;
    @SynchronisedField(fieldName="Password")
    private String password;
    @SynchronisedField(fieldName="Salt")
    private String salt;
    @SynchronisedField(fieldName="IsLocked")
    private boolean isLocked;
    @SynchronisedField(fieldName="HasMobileAccess")
    private boolean hasMobileAccess;
}
Run Code Online (Sandbox Code Playgroud)

经过一番调查后,最终编写了一个"loader"方法,允许在当前的apk中发现模型类.它应该检索标记为"已同步"的所有类,但这里的问题是getAttribute(Synchronised.class)不起作用.手动迭代注释并搜索属性(instanceof等)也不起作用.在调试时我注意到来自反射的注释实际上是一个代理(getClass()给出"类Proxy2",而annotation.AnnotationType()返回正确的名称) - 这解释了为什么我以前的尝试没有成功.当试图直接投射时 - 投掷异常被抛出(可以理解).基本上我在这里不知所措,所以欢迎任何想法.

模型加载方法(在库项目中):

public static List<Class> getModels(Context context, String packageName)
        throws IOException, URISyntaxException, ClassNotFoundException,
            NameNotFoundException {

        String apkName = context.getPackageManager().getApplicationInfo(packageName, 0).sourceDir;
        DexFile dexFile = new DexFile(apkName);
        //PathClassLoader classLoader …
Run Code Online (Sandbox Code Playgroud)

java reflection android

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

在(.NET 4.0 C#)Sync Framework 4.0 CTP中将"0"/"1"解析为bool

是否有可能使用某种类型的转换器,允许Sync Framework将字符串"0"/"1"视为false/true的布尔值.根据bool.parse文档,默认情况下不支持它,所以它有解决方法吗?

更多细节,以防有人可以建议不同的方法来解决这个问题:我有一个针对Android的自定义Sync Framework客户端实现,因为它使用SQLite数据库,我无法在表字段上强制执行某些严格的数据类型.我可以拿出约定来指示布尔字段,例如,"Is"前缀,但这将是令人讨厌的.另一件事是SQLite中的布尔值被视为数字类型,因此插入/更新boolean false/true到SQLite数据库会自动将它们转换为0/1而我不想在android端引入一些TRUE/FALSE = 1/0转换.

欢迎任何想法.

[更新]更多详细信息:服务器端包含一些使用Microsoft Sync Framework 4.0 CTP的服务.除了创建范围等之外,没有太多要配置.客户端生成变更集并使用JSON格式将其传输到服务器.变更集来自SQLite数据库(并且SQLite没有除数字0/1之外的任何本机布尔表示),因此在读取数据库时,没有迹象表明即将到来的数据是布尔类型的.字段值作为字符串序列化为JSON对象,具有数值("0"或"1"),因此服务器端在尝试将其解析为bool时失败.

顺便说一句,如果进行单向客户端到服务器同步,可以解决它.我手动将服务器端实体字段类型设置为字节,Sync Framework很好地将其用作"位"数据库类型.此解决方法不适用于服务器到客户端.

.net sqlite data-synchronization

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