我正在使用Angular 6和HTTP Interceptor配置为将承载令牌应用于传出请求.
在dev build(ng serve)中,应用了令牌,一切正常. :-)
在生成build(ng serve --prod)中,请求是在没有承载令牌的情况下发出的. :-(
在prod构建中,我通过在应用它们之后将标头转储到控制台来验证正在应用标头.
我不知道为什么他们被排除在http请求之外.
我的environment文件没有差异.
我还应该注意什么?
我该怎么做才能解决这个问题?
起初我认为这是我的本地环境和我的暂存环境之间的问题,但后来我尝试在ng serve --prod本地运行并看到相同的结果.
所有这一切,除了一个是生产构建和一个开发构建之外,一切都是相同的.
智威汤逊拦截:
import { Injectable } from '@angular/core';
import { HttpRequest, HttpHandler, HttpEvent, HttpInterceptor } from '@angular/common/http';
import { Observable } from 'rxjs';
@Injectable()
export class JwtInterceptor implements HttpInterceptor {
intercept(request: HttpRequest<any>, next: HttpHandler): Observable<HttpEvent<any>> {
// add authorization header with jwt token if available
let currentUser = JSON.parse(localStorage.getItem('currentUser'));
if (currentUser && currentUser.token) …Run Code Online (Sandbox Code Playgroud) 我正在尝试访问ACCESS_FINE_LOCATION,如果找不到访问权限ACCESS_COARSE_LOCATION.所以我要求获得这2个权限,但是他们给了我相同的对话框,要求获得位置许可.我知道这些都属于同一组,但谷歌说:
注意:即使用户已在同一组中授予了其他权限,您的应用仍需要明确请求其所需的每个权限.此外,将权限分组到组中可能会在将来的Android版本中发生变化.您的代码不应该依赖于特定权限属于或不属于同一组的假设.
这意味着我要求在一秒内获得这2个权限,这会导致连续2个对话框.这对我来说似乎不太友好.有没有更好的办法?
为了支持API 19及更低版本,我让我的活动扩展AppCompatActivity.我尝试为v21设置以下父主题parent="android:Theme.Material"
当我尝试运行我的应用程序时,它给出了一个异常并告诉我使用Activity而不是AppCompatActivity.
这是否意味着我必须创建新的活动,扩展API 21及更高版本的活动以获得材料设计?或者,还有更好的方法?
我想得到这个来自的网址:
this.router.navigate(./somepath, { relativeTo: this.route })
this.route属于那种类型ActivatedRoute.
我试过url: string = route.snapshot.url.join('');但这给了一个空字符串.
我知道这听起来很怪异,所以这是图片.
它保持正确的价值.选择(部分)正确的单选按钮.其中的所有逻辑OnCheckedChangeListener都正确执行.我完全惊呆了.为什么没有完全检查单选按钮?
我唯一能想到的就是我正在使用 Rx2Firebase
periodRetriever = FirebaseHelper.getInstance(getContext()).getPeriod()
.defaultIfEmpty(0)
.distinctUntilChanged()
.subscribe(new Consumer<Integer>() {
@Override
public void accept(@NonNull Integer headerType) throws Exception {
getRadioViewChecked(headerType).setChecked(true);
}
});
Run Code Online (Sandbox Code Playgroud)
EDIT1
EDIT2
布局:
<RadioGroup
android:id="@+id/rgPeriod"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal">
<android.support.v7.widget.AppCompatRadioButton
android:id="@+id/rbMonth"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:checked="false"
android:text="@string/month" />
<android.support.v7.widget.AppCompatRadioButton
android:id="@+id/rbWeek"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:checked="false"
android:text="@string/week" />
<android.support.v7.widget.AppCompatRadioButton
android:id="@+id/rb4Weeks"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:checked="false"
android:text="@string/four_weeks" />
</RadioGroup>
Run Code Online (Sandbox Code Playgroud) android android-layout android-radiogroup android-radiobutton
我正在尝试向actionBar添加进度条.我在谈论旋转圈.我做了一个请求并尝试设置是可变的,但没有任何反应.我已经阅读了许多可能的问题,但仍然无法弄清楚我做错了什么.
我的代码:
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
supportRequestWindowFeature(Window.FEATURE_INDETERMINATE_PROGRESS);//Above setContentView, very important
setContentView(R.layout.activity_main);
//...other stuff
}
Run Code Online (Sandbox Code Playgroud)
在另一个我没有在create上调用的方法.(这是一个onClick方法)
public void plus(View view){
setProgressBarIndeterminateVisibility(true);//Nothing happens
//...other stuff
}
Run Code Online (Sandbox Code Playgroud)
我不明白什么是错的,请帮帮我.
注意:我从未将其设置为false
编辑:我试过mmlooloo第二部分,但绝对注意到发生了.甚至不是第3部分.所以我尝试了第4部分,但我给了我一个例外.
"此活动已经有一个由窗口装饰提供的操作栏.请不要在主题中请求Window.FEATURE_ACTION_BAR并将windowActionBar设置为false以使用工具栏."
我删除了Window.FEATURE_ACTION_BAR请求,但它给了我相同的异常.我不认为我需要将windowActionBar设置为false,但我做了,它仍然给了我相同的异常.
还有其他选择吗?
下面的代码给出了Nougat和pre-Nougat的不同结果.看看,如果你想要自己尝试一下.如果有人能解释我为什么并给出解决方案,我将不胜感激.
我想在所有Android版本上获得正确的WEEK_OF_YEAR值,具体取决于一周的第一天.我有一个时间表应用程序,我正在使用gregorianCalendar很多,所以我不想切换到另一个类/ lib.
//default first day of the week is Monday for replication. I live in the Netherlands, it's weird.
Locale l = new Locale("nl", "NL");
GregorianCalendar test = new GregorianCalendar(l);
test.set(Calendar.YEAR, 2017);
test.set(Calendar.MONTH, 0);
test.set(Calendar.DAY_OF_MONTH, 29);//this is a Sunday
int week = test.get(Calendar.WEEK_OF_YEAR);//should be 4
test.setFirstDayOfWeek(1);//Set it to Sunday
int week2 = test.get(Calendar.WEEK_OF_YEAR);//should be 5 but is 4 below nougat???
Run Code Online (Sandbox Code Playgroud) 我有一个非常基本的splashscreen活动:
@Override
protected void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_start);
FirebaseAnalytics.getInstance(this);
mAuth = FirebaseAuth.getInstance();
mAuth.addAuthStateListener(new FirebaseAuth.AuthStateListener() {
@Override
public void onAuthStateChanged(@NonNull FirebaseAuth firebaseAuth) {
FirebaseUser user = firebaseAuth.getCurrentUser();
if (user != null) {
FirebaseAuth.getInstance().removeAuthStateListener(this);
startActivity(new Intent(StartActivity.this, MainActivity.class));
finish();
}
}
});
}
Run Code Online (Sandbox Code Playgroud)
这个启动画面打开我的MainActivity.当我关闭此活动时,这是最近的应用程序中的屏幕截图:
好像它制作截图太晚了,导致这个嵌套的最近应用截图.这也发生在实际设备上.我怎样才能解决这种奇怪的行为?
活动清单:
<activity
android:name="activities.StartActivity"
android:label="@string/app_name"
android:screenOrientation="portrait">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<activity
android:name="activities.MainActivity"
android:label="@string/app_name"
android:screenOrientation="portrait"
android:launchMode="singleTask">
</activity>
Run Code Online (Sandbox Code Playgroud)
问题似乎不在于launchMode.我一直有同样的行为.即使拆除了lauchmode.
它与回调绝对有关.直接启动活动时,没有问题.
编辑:
我找到了一个解决方案.使用延迟启动活动会解决它.虽然硬编码延迟不是很好.
new Handler().postDelayed(new Runnable() {
@Override
public void run() …Run Code Online (Sandbox Code Playgroud) 我排除了Windows Defender中的以下文件夹,但“ Antimalware Service可执行文件”仍使用大量cpu。
C:\Program Files\Android\Android StudioC:\Users\ME\.androidC:\Users\ME\MyAndroidProjectsC:\Users\ME\AppData\local\Android我忘记了哪个文件夹/文件?
当出现带有进度条的对话框时,我需要使用NVDA屏幕阅读器来阅读一些消息.
在进度条的持续时间为0%时,我需要宣布: "您收到了定时消息"
进度条的持续时间为100%: "消息已过期"
使用的进度条是md-progress-linear.
html代码如下所示:
<md-dialog>
<md-progress-linear tabindex="0" ng-if="displayProgressIndicator || timeoutValue > 0" md-mode="determinate" class="promptProgressBar" value="{{progressValue}}"></md-progress-linear>
<md-content class="md-title dialogTitle">
{{messageTitle}}
</md-content>
<md-content class="md-dialog-content">
{{messageText}}
</md-content>
<div class="md-dialog-actions">
<md-button ng-style="theme.SecondaryButton" ng-click="OnClose()" class="md-primary right">
{{primaryActionText}}
</md-button>
<md-button ng-style="theme.SecondaryButton" ng-if="secondaryActionText.length > 0" ng-click="OnCancel()" class="md-primary right">
{{secondaryActionText}}
</md-button>
</div>
</md-dialog>
Run Code Online (Sandbox Code Playgroud)
我看到一些滑块的工作示例,它使用aria-valuetext属性,NVDA正确读取这些文本.
我尝试在md-progress-linear元素中添加aria-valuetext属性,但不起作用.
当消息到达时,NVDA会发出蜂鸣声,但不会读取aria-valuetext.
有什么想法怎么做?
android ×7
angular ×2
progress-bar ×2
angularjs ×1
dayofweek ×1
firebase ×1
nvda ×1
wai-aria ×1
week-number ×1