我第一次开始使用Xamarin.Forms.我注意到我的项目可能有一个过时的版本,但我找不到如何更新它.
查看NuGet画廊,最新版本为1.5:https: //www.nuget.org/packages/Xamarin.Forms/
但是,在我的项目中,我仍然以某种方式使用版本1.3,即使我仅在几天前创建了该项目.以下是解决方案资源管理器的外观:
Xamarin Studio不会让我更新引用,因为它们是"来自包".这是什么意思,我该如何更新?
我正在为Android构建音乐流媒体应用.
在这个应用程序中,我有一个Service负责从HTTP服务器播放音频.在玩之前,我确保startForeground()并获得部分内容WakeLock,这样我的服务就不会被杀死.我也得到了一个WifiLock,以防万一.
该服务工作正常...只要我的手机没有"省电模式".我打开电池并断开手机与电源的连接,我的服务就会被火烧死!
不幸的是,它似乎甚至没有onDestroy()被调用,所以我的通知startForeground()保持可见,即使服务已经死亡.
这款手机是三星Galaxy S6,搭载Android 6.0.1.
两个问题:
有什么建议?
所以我们正在构建这个iOS应用程序.我们有Jenkins自动运行的性能测试.当然,这些测试必须在设备上运行.
现在我们在一些测试中遇到了很多麻烦,我怀疑他们自己没有清理,让应用程序的Documents文件夹处于不确定状态.显然我可以修复清理工作,但这需要很长时间.
我希望能够在运行测试之前从设备中删除应用程序.我们有什么方法可以通过xcodebuild或任何其他自动化工具来做到这一点.甚至可以是applescript或非官方工具.唯一的规则是我们可能不会越狱设备.
我一直在努力MPNowPlayingInfoCenter。一段时间后,我可以在iPhone上使用它了。
但这在模拟器(已通过iOS 6和7测试)上不起作用。我是在做错什么,还是模拟器明确不支持它?
所以我还在首次亮相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)
有什么方法可以阻止事件触发/知道它不是触发事件的用户?
我正在构建一个用于音乐流媒体的 Android 库。它有ExoPlayer作为依赖项(顺便说一句,这是一个优秀的库!)。
我们将此库用于我们现在也在 Xamarin 中开发的另一个项目。目前,我们需要添加两个库(我的 .aar 和 ExoPlayer 的 .jar)。说实话,这有点烦人,我很想把我的 .aar 放进去,然后就可以了。
那么两个问题:
这是我当前的 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) 我在 Docker 容器中部署了带有 Daphne (ASGI) 的 Django 4 应用程序。我前面使用Caddy作为反向代理。它有效,但我无法填写任何表格,因为 CSRF 保护启动。例如,没有管理员登录。
我目前可以通过两种方式访问管理界面:
选项 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 一起部署在 …
我正在尝试在 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)
我的实现与他们的示例之间存在一些差异。据我所知:
ControllerBase而不是Controller作为超类我注意到的是以下内容:
[Authorize],一切都好。我得到 200 OK 的预期结果 …我正在玩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.我做错了什么?
我只是将我的Vim配置为使用了Syntastic - 效果很好!我用它来进行javascript验证.
我安装了两个挂钩:jslint和jshint,我打算保留两个.但是Syntastic似乎不想同时报告两者的错误:我从jshint得到第一个错误,然后在我修复之前的错误时只得到jslint.
我怎么能同时拥有这两个?