小编Why*_*Why的帖子

检测IOS 10中的GSM呼叫状态(Swift 3,Xcode 8)和来自后台状态的通知

TLDR:从后台检测呼叫结束事件 请参阅以下问题的更新:

是否可以使用Swift从后台状态检测/获取IOS 10中的呼叫状态事件.在早期版本中有一个CORE Telephony api,但现在似乎已经弃用了.

我见过CallKit Api, 但它说这是基于VOIP的呼叫.我需要获得正常的CDMA/GSM呼叫状态,而不是基于VOIP的呼叫,并且当呼叫结束时只需向服务器发出通知.我不需要访问任何可能是隐私问题的数据点,只需要一个事件,当呼叫结束时,然后我的应用程序将是一个后台应用程序将启动.而已.有关如何做到这一点的任何指示?

更新:使用CallKit Api虽然无法区分voip和普通的GSM呼叫,但我能够获得呼叫状态.我可以解决这个问题.我也可以通过以下方式获得本地通知.

func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplicationLaunchOptionsKey: Any]?) -> Bool {
        // Override point for customization after application launch.
        application.beginBackgroundTask(withName: "showN", expirationHandler:nil)
        return true
    }

extension AppDelegate: CXCallObserverDelegate {
       func callObserver(_ callObserver: CXCallObserver, callChanged call: CXCall) {
        if call.hasEnded == true {
            print("Disconnected")
            let trigger = UNTimeIntervalNotificationTrigger(timeInterval:60,repeats:false)
            let identifier = "MyCallLocalNotification"
            let request = UNNotificationRequest(identifier: identifier, content: content, trigger: trigger)
            center.add(request, withCompletionHandler: …
Run Code Online (Sandbox Code Playgroud)

ios core-telephony swift ios10 callkit

13
推荐指数
2
解决办法
2902
查看次数

Django 延迟加载分页

我正在尝试使用Django Endless Pagination来实现 Twitter/Instagram 样式分页的效果,其中一旦用户滚动到页面底部,就会将新内容加载到页面上。使用上述模块,我已经能够做到这一点。但是,我有一个与性能相关的问题。我发送数据的视图仍然加载数据库中的所有行。仅在模板侧显示其中的一部分。

class IndexView(BaseAjaxViewList):
    template_name = 'polls/index.html'
    page_template = 'polls/item_index.html'
    context_object_name = 'data'
    model = Question

    def get_context_data(self,**kwargs):
        context = super(IndexView, self).get_context_data(**kwargs)
        print(len(context["data"]))
        return context
Run Code Online (Sandbox Code Playgroud)

我认为只能从数据库访问 'n' 个项目,并且当发生滚动时会有另一个 db 调用等等,这可以提高页面的加载性能。假设页面中有 1000 个项目,那么理想情况下,我希望首先加载 50 个项目(在 1 个 db 调用中访问 50 个项目),然后一旦用户滚动并到达页面底部,然后再加载 50 个项目应该被访问和显示。但是,我尝试在场景下进行检查,似乎所有 1000 次调用都是使用此模块同时进行的。仅在模板端,一次显示 50 个。这是真的?是否有任何 django 模块可以做到这一点,或者我必须编写自己的 ajax 调用等?

参考模板如下:

主要模板

 <h2>Polls:</h2>
    {% include page_template %}

    {% block js %}
        {{ block.super }}
        <script src="http://code.jquery.com/jquery-latest.js"></script>
        <script src="{% static 'endless_pagination/js/endless-pagination.js' %}"></script>
        <script>$.endlessPaginate();</script>
    {% endblock %} …
Run Code Online (Sandbox Code Playgroud)

python django jquery pagination django-endless-pagination

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

为什么代码覆盖率在伊斯坦布尔不起作用?

我正在尝试为我的 Node 项目运行代码覆盖率,但由于某种原因它不起作用。我正在使用 chai+mocha+istanbul,也尝试过 nyc。我的代码同时具有 ES5 和 ES6 组件,并且我为此使用编译器标签。测试运行良好,但代码覆盖率没有显示任何内容。

11 passing (15ms)
    ----------|----------|----------|----------|----------|----------------|
    File      |  % Stmts | % Branch |  % Funcs |  % Lines |Uncovered Lines |
    ----------|----------|----------|----------|----------|----------------|
    All files |  Unknown |  Unknown |  Unknown |  Unknown |                |
    ----------|----------|----------|----------|----------|----------------|
Run Code Online (Sandbox Code Playgroud)

我的 package.json 的相关部分:

"test": "mocha test/app.test.js --compilers js:babel-core/register",
"test:cover": "nyc npm t",
"coverage": "babel-node ./node_modules/.bin/isparta cover mocha -- --compilers js:babel-register",
"cover": "cross-env NODE_ENV=test nyc --reporter=lcov --reporter=text mocha --compilers js:babel-register test/*.js"
Run Code Online (Sandbox Code Playgroud)

正如您可能会发现的那样,我尝试了不同的组合和替代方案,但似乎没有什么对我有用。

开发依赖项的相关部分:

    "babel-cli": "^6.16.0",
    "babel-core": "^6.26.0",
    "babel-loader": …
Run Code Online (Sandbox Code Playgroud)

javascript code-coverage node.js istanbul isparta

5
推荐指数
0
解决办法
1001
查看次数

检查字典中是否存在某个项目并将其从C#中的字典中删除

标题本身应该清楚这个问题.我需要检查字典中是否存在某个项目,并将其从C#中的字典中删除.唯一的问题是,我必须只使用有价值的物品,而不是钥匙.

声明如下:

IDictionary<string, myCustomClassObject> clients = new IDictionary<string, myCustomClassObject>();
Run Code Online (Sandbox Code Playgroud)

现在我填写字典:

clients["key"] = myCustomClassObject1;
Run Code Online (Sandbox Code Playgroud)

现在我如何myCustomClassObject1从我的词典中找到并删除此项目.我只想使用值项而不是键

这是doabale ......如果是这样,请指导......问候

编辑:谢谢大家......得到了宝贵的意见......可能有一些想法......谢谢

c# generics collections dictionary visual-studio

2
推荐指数
1
解决办法
3430
查看次数

将新窗口添加到桌面时是否触发任何事件

我想知道当桌面上出现/出现新窗口时是否有任何事件被触发.我愿意使用COM,WMI,WinApis,UIAutomation或任何其他方法,但选择的语言是C#.

实际要求:一个进程有一个主窗口和许多其他窗口.其中一个窗口的类名称是X,(我使用pinvoke获取此信息).现在,只要进程中有通知,此窗口就会弹出一些时间.我不想显示这个窗口.我没有对该进程的代码访问权限,因此我可以禁用该窗口.那么有什么方法可以让我得到一个事件或任何其他机制来跟踪桌面,并且任何时候一个带有类名X的窗口来/它将隐藏它.

请问我是否对这个问题不清楚.谢谢

编辑:西蒙的回答非常好.我试过了,并且能够获得所有窗口的通知,除了通知/吐司窗口,例如lync的im toast通知或outlook新邮件通知.我尝试使用自动化元素和Windows模式的不同元素,但仍然无法获得那些...任何想法我怎么能得到那些...你可以阅读西蒙的答案中的评论更多的背景/细节.再次感谢西蒙介绍了UIAUtomation的强大功能 ......爱它!

c# windows com wmi pinvoke

2
推荐指数
1
解决办法
1133
查看次数