小编asp*_*yct的帖子

如何将Xamarin.Forms更新到最新版本?

我第一次开始使用Xamarin.Forms.我注意到我的项目可能有一个过时的版本,但我找不到如何更新它.

查看NuGet画廊,最新版本为1.5:https: //www.nuget.org/packages/Xamarin.Forms/

但是,在我的项目中,我仍然以某种方式使用版本1.3,即使我仅在几天前创建了该项目.以下是解决方案资源管理器的外观:

解决方案探索者

Xamarin Studio不会让我更新引用,因为它们是"来自包".这是什么意思,我该如何更新?

nuget xamarin xamarin.forms

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

"电池保护程序"功能可以杀死我的音乐服务

我正在为Android构建音乐流媒体应用.

在这个应用程序中,我有一个Service负责从HTTP服务器播放音频.在玩之前,我确保startForeground()并获得部分内容WakeLock,这样我的服务就不会被杀死.我也得到了一个WifiLock,以防万一.

该服务工作正常...只要我的手机没有"省电模式".我打开电池并断开手机与电源的连接,我的服务就会被火烧死!

不幸的是,它似乎甚至没有onDestroy()被调用,所以我的通知startForeground()保持可见,即使服务已经死亡.

这款手机是三星Galaxy S6,搭载Android 6.0.1.

两个问题:

  1. 有没有办法我可以保持服务活着,尽管电池保护程序东西?
  2. 如果没有,我想知道至少我的服务被杀,以便我可以做一些清理(删除通知和内部的东西).

有什么建议?

streaming service android

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

从命令行删除iOS应用程序

所以我们正在构建这个iOS应用程序.我们有Jenkins自动运行的性能测试.当然,这些测试必须在设备上运行.

现在我们在一些测试中遇到了很多麻烦,我怀疑他们自己没有清理,让应用程序的Documents文件夹处于不确定状态.显然我可以修复清理工作,但这需要很长时间.

我希望能够在运行测试之前从设备中删除应用程序.我们有什么方法可以通过xcodebuild或任何其他自动化工具来做到这一点.甚至可以是applescript或非官方工具.唯一的规则是我们可能不会越狱设备.

xcode xcodebuild ios jenkins

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

MPNowPlayingInfoCenter不适用于模拟器

我一直在努力MPNowPlayingInfoCenter。一段时间后,我可以在iPhone上使用它了。

但这在模拟器(已通过iOS 6和7测试)上不起作用。我是在做错什么,还是模拟器明确不支持它?

objective-c ios mpnowplayinginfocenter

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

Xamarin.Forms.Switch在更新值时发送Toggled事件

所以我还在首次亮相Xamarin.Forms.到目前为止,如果我把我遇到的一些麻烦的错误放在一边这么好.这是新人.也许你们其中一个人可以告诉我,如果我做错了什么.

基本上,我有一个Xamarin.Forms.Switch在我的界面上,我正在倾听Toggled事件的状态变化.该文档说明了这个事件:"当用户切换此Switch时引发的事件."

不幸的是,当我以编程方式更新交换机的值时,事件将触发.

var mySwitch = new Switch ();
mySwitch.Toggled += (object sender, ToggledEventArgs e) => {
    Console.WriteLine ("Switch.Toggled event sent");
};
mySwitch.IsToggled = true;
Run Code Online (Sandbox Code Playgroud)

有什么方法可以阻止事件触发/知道它不是触发事件的用户?

c# events xamarin xamarin.forms

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

将第三方库捆绑到我的 .aar 中

我正在构建一个用于音乐流媒体的 Android 库。它有ExoPlayer作为依赖项(顺便说一句,这是一个优秀的库!)。

我们将此库用于我们现在也在 Xamarin 中开发的另一个项目。目前,我们需要添加两个库(我的 .aar 和 ExoPlayer 的 .jar)。说实话,这有点烦人,我很想把我的 .aar 放进去,然后就可以了。

那么两个问题:

  1. 有没有办法可以使用 gradle 等将 ExoPlayer 捆绑到我的 .aar 中?(我是个初学者,请彻底)
  2. 我意识到这可能不是最好的做法(依赖关系应该由应用程序管理,等等),但实际上,每次更新前者时,我们都会一起测试 ExoPlayer 和我的库。那么,是否有充分的理由我不应该将 ExoPlayer 捆绑到我的库中,或者可以吗?

这是我当前的 gradle 文件。不过,没什么令人兴奋的东西。但是当我将初始应用程序转换为库时,也许有一些奇怪的事情,谁知道呢......

apply plugin: 'com.android.library'

android {
    compileSdkVersion 23
    buildToolsVersion "23.0.2"

    defaultConfig {
        minSdkVersion 19
        targetSdkVersion 23
        versionCode 1
        versionName "1.0"
    }
    buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        }
    }
}

dependencies {
    compile fileTree(dir: 'libs', include: ['*.jar'])
    compile ('com.google.android.exoplayer:exoplayer:r1.5.6')
    testCompile 'junit:junit:4.12'
    testCompile 'org.mockito:mockito-core:1.10.19'
    compile 'com.android.support:appcompat-v7:23.2.0'
}
Run Code Online (Sandbox Code Playgroud)

android jar android-gradle-plugin aar exoplayer

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

Django + Caddy = CSRF 保护问题

我在 Docker 容器中部署了带有 Daphne (ASGI) 的 Django 4 应用程序。我前面使用Caddy作为反向代理。它有效,但我无法填写任何表格,因为 CSRF 保护启动。例如,没有管理员登录。

我目前可以通过两种方式访问​​管理界面:

  1. 直接通过 docker,通过 SSH 调谐端口
  2. 通过 Caddy,然后转发到 Docker 容器。

选项 1 有效。我可以登录管理界面,就像在本地运行开发服务器一样。一切都按预期进行。

但是,选项 2(caddy 反向代理)不起作用。我可以访问 Django 并加载页面,但任何表单提交都将被阻止,因为 CSRF 保护启动。

CSRF verification failed. Request aborted.

Reason given for failure:
    Origin checking failed - https://<mydomain.com> does not match any trusted origins.
Run Code Online (Sandbox Code Playgroud)

我的 Caddyfile 包含以下内容:

<mydomain.com> {
       reverse_proxy localhost:8088
}
Run Code Online (Sandbox Code Playgroud)

localhost:8088 是我的 docker 容器公开的端口。

为了消除潜在问题,我在配置文件中将以下内容设置为 false:

  • SECURE_SSL_REDIRECT(导致重定向循环,可能与反向代理有关)
  • SESSION_COOKIE_SECURE(我宁愿将其设置为 True,但目前我不知道)
  • CSRF_COOKIE_SECURE(同样的评论)

我在网上能找到的唯一 Django-Caddy 示例已经过时,并且引用的是旧版本的 Caddy 和/或 Django。Django 与 Daphne 一起部署在 …

python django reverse-proxy docker caddy

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

通过身份验证访问 [Authorize] 控制器时出现 404

我正在尝试在 ASP.NET MVC Core 应用程序 (.NetCore 2) 上使用 IdentityServer4 实现身份验证和访问控制。虽然这不是我第一次实现后端,但这是第一次使用 .net,而且我正在为一些事情苦苦挣扎。

我已经按照https://identityserver4.readthedocs.io/en/release/quickstarts/1_client_credentials.html以及之前页面的说明进行操作。

我还添加了示例,IdentityController因为它们显示:

using System.Linq;
using Microsoft.AspNetCore.Authorization;
using Microsoft.AspNetCore.Mvc;

namespace leafserver.Controllers
{
    [Route("/api/identity")]
    [Authorize]
    public class IdentityController : Controller
    {
        [HttpGet]
        public IActionResult Get()
        {
            return new JsonResult(from c in User.Claims select new { c.Type, c.Value });
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

我的实现与他们的示例之间存在一些差异。据我所知:

  • 我使用本地网络地址 (192.168.1.x) 而不是 localhost
  • 他们使用的是“Web 应用程序”,而我使用的是“Web Api”
  • 他们似乎使用ControllerBase而不是Controller作为超类
  • 我不确定他们使用的 ASP.NET MVC 和我使用的 MVC 之间是否有区别(我使用的是核心,他们似乎没有,但通常它应该仍然有效......)

我注意到的是以下内容:

  • 只要我不放一个[Authorize],一切都好。我得到 200 OK 的预期结果 …

.net asp.net-core identityserver4

4
推荐指数
2
解决办法
2925
查看次数

在angularjs中自动更新范围变量

我正在玩AngularJS.我想从一个服务中返回一个变量,它会让范围知道它何时发生了变化.

为了说明这一点,请查看www.angularjs.org中的示例,"连接后端".粗略地说,我们可以看到以下内容:

var projects = $firebase(new Firebase("http://projects.firebase.io"));
$scope.projects = projects;
Run Code Online (Sandbox Code Playgroud)

在此之后,对projects对象所做的所有更新(通过更新,无论是本地还是远程)都将自动反映在作用域绑定的视图上.

我怎样才能在我的项目中实现同样的目标?就我而言,我想从服务中返回一个"自我更新"变量.

var inbox = inboxService.inboxForUser("fred");
$scope.inbox = inbox;
Run Code Online (Sandbox Code Playgroud)

什么机制让它$scope知道它应该更新?

编辑: 为了回应这些建议,我尝试了一个基本的例子.我的控制器:

$scope.auto = {
    value: 0
};

setInterval(function () {
    $scope.auto.value += 1;
    console.log($scope.auto.value);
}, 1000);
Run Code Online (Sandbox Code Playgroud)

而且,在我看来的某个地方:

<span>{{auto.value}}</span>
Run Code Online (Sandbox Code Playgroud)

不过,它只显示0.我做错了什么?

scope angularjs

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

syntastic - 显示jslint和jshint错误

我只是将我的Vim配置为使用了Syntastic - 效果很好!我用它来进行javascript验证.

我安装了两个挂钩:jslint和jshint,我打算保留两个.但是Syntastic似乎不想同时报告两者的错误:我从jshint得到第一个错误,然后在我修复之前的错误时只得到jslint.

我怎么能同时拥有这两个?

vim jslint jshint syntastic

3
推荐指数
1
解决办法
344
查看次数