小编Roy*_*hal的帖子

Ionic 3 - 内联视频在iOS 10上的原生播放器中以全屏模式打开

我正试图在离子3移动应用程序中内嵌视频 - 我想避免启动原生视频播放器.

我正在测试iPhone 5s - iOS 10.

这是我根据我读过的所有内容创建的用于加载视频的功能:

loadVideo(src: string, onComplete?: (src: string) => void): void {
    var video: HTMLVideoElement = document.createElement('video');

    video.setAttribute('playsinline', '');
    video.setAttribute('webkit-playsinline', '');
    video.setAttribute('src', src);

    var onVideoLoaded = () => {
        video.removeEventListener('loadeddata', onVideoLoaded);

        if (onComplete != null) onComplete(src);
    };

    video.addEventListener('loadeddata', onVideoLoaded);

    video.load();
}
Run Code Online (Sandbox Code Playgroud)

加载完成后,我通过video.play()播放它.

该功能的另一个版本是:

loadVideo(src: string, onComplete?: (src: string) => void): void {
    var video: HTMLVideoElement = document.createElement('video');

    video.setAttribute('playsinline', '');
    video.setAttribute('webkit-playsinline', '');

    var srcElement: HTMLSourceElement = document.createElement('source');

    srcElement.setAttribute('src', src);
    srcElement.setAttribute('type', 'video/mp4');

    var onVideoLoaded = () …
Run Code Online (Sandbox Code Playgroud)

javascript ios cordova ionic-framework angular

13
推荐指数
1
解决办法
6264
查看次数

JavaScript - 如何使 ES6 导入在浏览器中工作?

我正在开始一个新项目,我想要在其中使用 ES6 样式模块,但是,我无法让它在浏览器中运行。我正在使用 Chrome。

我将问题隔离在很少的代码行中。

这是我的 2 个 TypeScript 文件:

应用程序

import { Component } from './component';

var component: Component = new Component();
Run Code Online (Sandbox Code Playgroud)

组件.ts

export class Component {

}
Run Code Online (Sandbox Code Playgroud)

以下是它们编译为 JavaScript 的方式:

应用程序.js

import { Component } from './component';
var component = new Component();
Run Code Online (Sandbox Code Playgroud)

组件.js

export class Component {
}
Run Code Online (Sandbox Code Playgroud)

我的 index.html 只包含一个脚本标签。我尝试了一些变体,但没有一个奏效。

index.html #1

<script src="src/app.js" type="module"></script>
Run Code Online (Sandbox Code Playgroud)

未加载脚本。(网络选项卡中没有请求)

index.html #2

<script src="src/app.js" type=module></script>
Run Code Online (Sandbox Code Playgroud)

未加载脚本。(网络选项卡中没有请求)

index.html #3

<script src="src/app.js"></script>
Run Code Online (Sandbox Code Playgroud)

未捕获的语法错误:意外的标记 {

我正在使用 tsc 通过 Visual Studio Code 转译 TypeScript。

任务文件 …

javascript ecmascript-6 es6-module-loader es6-modules

7
推荐指数
1
解决办法
4184
查看次数

Flutter - 不可滚动的网格

有没有一种方法可以构建一个本身不可滚动的网格,其大小取决于其子项,就像我们可以在行或列中指定 mainAxisSize: MainAxisSize.min 一样?

给你一张大图——

我正在尝试创建一个取决于设备宽度的响应式布局。它应该分为 2 部分,通过一列无缝连接。

1) 2 个大容器,其大小取决于屏幕宽度,考虑到它们之间的小空间。每个容器的宽度和高度都相同(方形容器)。

2)相同的想法,但有 3 行,每行由 3 个较小的容器组成。这将创建一个网格。尽管网格本身不可滚动并且其大小将根据其子项而定,但这一点非常重要。它应该只与包含在 SingleChildScrollView 中的页面的其余部分一起滚动。

尤其是因为每个容器的高度都需要与其宽度相同,所以我考虑将行、列和 LayoutBuilder 结合使用 - 它们为我提供了我需要的所有功能。

但是,在手动操作之前,我想知道是否有一些可以开箱即用的东西。

在此处输入图片说明

flutter flutter-layout

7
推荐指数
3
解决办法
6771
查看次数

当 flutter 应用程序终止时,正常的推送通知会静默或根本不出现

我在 nodejs 上使用 firebase-admin 向用户发送推送通知:https ://firebase.google.com/docs/admin/setup

我在颤振上使用 firebase_messaging:https : //pub.dev/packages/firebase_messaging

我正在尝试在 android 和 ios 上发送具有最高优先级的推送通知。

firebase.messaging(firebaseApp).send({
    token,
    notification,
    android: { priority: 'high' },
    apns: { headers: { 'apns-priority': '10' }, payload: { aps: { sound: 'default' } } },
    data
}
Run Code Online (Sandbox Code Playgroud)

在我的开发设备上,它在应用程序处于后台和终止时都非常有用。

我在 android 和 ios 上都收到推送通知,这些通知在 100% 的时间里明显弹出并发出声音。

问题出在其他设备上 -

如果应用程序在后台,我有时会看到实际的推送通知明显弹出,并发出应有的声音。有时不是。

如果应用程序终止,则会收到推送通知 - 但它既不会明显弹出也不会发出声音,我只能在从屏幕顶部向下滚动菜单时才能看到它,它被列为收到的推送通知。有时根本没有收到通知。

我也尝试将应用程序中通知的优先级更改为实际设备上的高,但没有任何改变。

我的用户一直抱怨他们没有收到推送通知 - 我猜他们要么实际上没有收到它们,要么只是没有看到它们,因为它们是按照我上面描述的静默收到的。

我真的不知道发生了什么以及为什么它不能在我自己的开发设备以外的设备上正常工作。

有任何想法吗?

push-notification node.js firebase flutter firebase-cloud-messaging

7
推荐指数
1
解决办法
3567
查看次数

TypeScript 编译顺序到单个文件

我正在通过在编译器选项中指定 outFile 将我的 TypeScript 项目编译成单个 JS 文件。在我的项目中,每个类都在不同的文件中定义。

问题是相互依赖的类没有按照正确的顺序连接到输出 JS 中。

例如,如果我的 A 类扩展了 B 类,则意味着 B 类必须在 A 类之前编译。

(1)

class A extends B { } //error - can't find B

class B { }
Run Code Online (Sandbox Code Playgroud)

(2)

class B { }

class A extends B { } //works as expected
Run Code Online (Sandbox Code Playgroud)

问题是 TypeScript compile 中的文件顺序没有按照类的依赖关系定义,导致出现很多(1)的情况。

可以通过手动定义多行编译顺序来解决:

/// <reference path="myFile.ts"/>
Run Code Online (Sandbox Code Playgroud)

然而,它并不理想,并且在大型项目中很快就会成为一个令人头疼的问题。

我读到的另一个选项是使用外部模块并能够要求/导入相关的类/文件。

这听起来不错,但它似乎只在每个 ts 文件被编译成自己的 js 文件后,在所需文件的运行时才处理异步加载。

我需要的是在从 ts 到 js 的编译期间根据类依赖关系定义正确的编译顺序。

我在谷歌上搜索了“打字稿编译顺序”并通读了前 10 个结果 - 意思是遵循对 turoials、文档、视频等的引用......

似乎人们一直在遇到同样的问题,但他们的问题从未得到满意的回答。 …

javascript typescript

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

Ionic - 在Windows上为IOS构建(适用于最新的IOS和Ionic)

我成功构建了我的Android应用程序,但对于Windows用户来说,IOS自然并不那么简单.

以前在不同版本的不同时间曾经多次询问过这个问题,但我很想知道是否有关于这个问题的最新信息.

这是一个有很多答案的老话题:https://forum.ionicframework.com/t/how-to-build-app-for-iphone-without-mac/19929/19

我正在使用离子3并且我想为最新的IOS构建,我的PC OS是Windows 10.Ionic是否提供了使这个过程更容易的任何方法?

我知道在最新的IOS中,苹果开发帐户不再是测试的要求.如何在没有测试的情况下测试?(也许只有在使用MAC时才有可能?)

如何在Ionic中使用PhoneGap Build? https://build.phonegap.com/apps

它需要Apple应用程序证书和密钥才能构建.

我应该手动创建一个config.xml吗?https://github.com/phonegap/phonegap-template-hello-world/blob/master/www/config.xml

ios cordova ionic-framework angular phonegap

6
推荐指数
2
解决办法
9730
查看次数

Unity - 将 git 包作为依赖项包含在嵌入式包的 package.json 中

我创建了一个嵌入式统一包并尝试添加一个 git unity 包作为依赖项。在本例中,我尝试添加 SocketIOUnity ( https://github.com/itisnajim/SocketIOUnity ),但这也适用于任何其他包。

我正在尝试将 SocketIOUnity 添加到我的 package.json 中,以便可以将其解析为依赖项。

我试过这个:

"dependencies": {
  "com.itisnajim.socketiounity": "https://github.com/itisnajim/SocketIOUnity.git"
}
Run Code Online (Sandbox Code Playgroud)

并得到以下错误:

[Package Manager Window] Cannot perform upm operation: Unable to add package [https://github.com/my-package.git]:
  Package my-package@https://github.com/my-package.git has invalid dependencies or related test packages:
    com.itisnajim.socketiounity (dependency): Version 'https://github.com/itisnajim/SocketIOUnity.git' is invalid. Expected a 'SemVer' compatible value. [NotFound].
UnityEditor.EditorApplication:Internal_CallUpdateFunctions ()
Run Code Online (Sandbox Code Playgroud)

似乎 git url仅在项目清单中受支持

我也尝试过这个:

"dependencies": {
  "com.itisnajim.socketiounity": "1.1.4"
}
Run Code Online (Sandbox Code Playgroud)

并得到以下错误:

[Package Manager Window] Cannot perform upm operation: Unable to add package [https://github.com/my-package.git]:
  Package …
Run Code Online (Sandbox Code Playgroud)

git unity-game-engine package.json

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

来自环境变量的Angular 2 base href

我希望在我的Angular 2应用程序中为开发和生产提供不同的基础href.

我已经看到了与这个问题类似(并且有些相同)的问题的答案.

这里最好的答案总结了在这些问题的所有答案中重复的2个解决方案:

使用ng build从环境变量设置基本href

我试过两个,每个都有自己的问题:

1)APP_BASE_HREF - 不适用于js/css文件.例如,当尝试请求app/someroute/1时,它将尝试从app/someroute/1而不是app中请求js和css文件.

2)修改ngOnInit中的基本href - 在调用ngOnInit时,已经请求了js和css文件,因此修改后的基本href不适用于init上加载的文件,仅适用于之后请求的文件(不是帮帮我).

到目前为止,对我来说唯一有用的是在每次编译后手动修改html以进行生产,但我正在尝试自动化它.

可能的解决方案:

1)在请求js和css文件之前改变基本href - 有没有办法做到这一点?它们基本上是在页面加载时立即请求的.可能添加在链接rel之前在头部执行的脚本?

2)使用不同的基本href值编译开发和生产的不同HTML,例如使用某种非常轻量级的html模板引擎,这不会是一种过度杀伤力.

你怎么看?

html javascript angular

4
推荐指数
1
解决办法
1817
查看次数

Vue 2 - ESLint + 标准 + Prettier

如何创建使用 ESLint + StandardJS + Prettier 的 Vue 2 项目?

StandardJS 的规则自然应该优先于 Prettier 的规则。

vue create 仅提供以下选项:

  1. ESLint + 标准
  2. ESLint + Prettier

我尝试了两件事:

  1. 我混合了上述两个选项的 eslint 配置。它导致了依赖地狱,一旦解决了它并没有真正按预期工作。
  2. 我将 prettier-standard 包添加到我的 eslintrc.js 中,它也没有按预期工作。值得一提的是,当从命令行手动执行时,prettier-standard 效果很好。

我当然希望在项目配置级别而不是 IDE 级别进行设置。

eslint vue.js vuejs2 prettier standardjs

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

Flutter - 获取其子项高度的列

是否可以以父级将采用子级大小的方式垂直排列子级?

更具体地说,这就是我想要做的:

让一个图标和一个文本垂直对齐,它们之间有一个小间距,并在具有固定高度的矩形内居中。

我希望文本和图标的垂直容器的大小根据其子项而定。像 FlatButton.icon 这样的东西,只有垂直而不是水平。

对于那个内部垂直容器,我发现的只是 Column 和 ListView,它们都采用它们在父级中可以获得的所有高度,而不是采用它们的子级的高度。

小样

flutter flutter-layout

0
推荐指数
1
解决办法
1995
查看次数