我想在 Android WebView 上的 PWA 中使用二维码扫描仪。
minSdkVersion 26 和 targetSdkVersion 28问题是权限似乎没有被授予。此外,权限请求会重复多次。
显现
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.CAMERA" />
<uses-feature
android:name="android.hardware.camera"
android:required="true" />
Run Code Online (Sandbox Code Playgroud)
根据上一个问题的答案,我在 WebViewHelper 类中有此代码
lateinit var webkitPermissionRequest : PermissionRequest
...
webView.webChromeClient = object : WebChromeClient() {
override fun onPermissionRequest(request: PermissionRequest) {
webkitPermissionRequest = request
val requestedResources = request.resources
for (r in requestedResources) {
if (r == …Run Code Online (Sandbox Code Playgroud) 我在 Chrome 中有一个可用的 WebRTC 连接。它使用 1 个数据通道作为聊天应用程序的一部分。
我还想支持 Firefox,因此我需要更改一些不支持的事件:对于RTCPeerConnection以及DataChannel。
对数据通道的更改按预期进行:
//chrome implenetation
dc.onopen = this.conncectionStats.bind(this);
dc.onmessage = onMessage;
// chrome and firefox
dc.addEventListener('open', (event) => {
this.conncectionStats.bind(this)
});
dc.addEventListener('message', (event) => {
onMessage(event)
});
Run Code Online (Sandbox Code Playgroud)
但是,更改 PeerConnection 时会出现问题:
// chrome implenetation
pc.onconnectionstatechange = this.onConnectionStateChange.bind(this);
// chrome and firefox
pc.addEventListener('onconnectionstatechange', (event) => {
console.log("onconnectionstatechange fired")
this.onConnectionStateChange.bind(this);
})
Run Code Online (Sandbox Code Playgroud)
该事件从未发生。有什么想法为什么会出现这种情况吗?
该事件应该是正确的,但另一方面,MDN Web Docs上缺少文档。
目标是让我的 Express 服务器使用 Firebase Cloud Messaging (FCM) 发送推送通知。
问题是admin SDK的初始化似乎不起作用。代码是用 JavaScript 编写的,节点版本是 10.16.0,firebase-admin 版本是 8.3.0,服务器在最新的 Ubuntu 上运行。
我按照 firebase 指南设置了管理 SDK: https ://firebase.google.com/docs/admin/setup#initialize_the_sdk
设置了 GOOGLE_APPLICATION_CREDENTIALS 环境变量,并尝试使用该变量打开文件:
nano $GOOGLE_APPLICATION_CREDENTIALS
Run Code Online (Sandbox Code Playgroud)
一次
admin.messaging().send(message)
Run Code Online (Sandbox Code Playgroud)
被调用时,会抛出以下错误:
Error sending message: { Error: Credential implementation provided to initializeApp() via the "credential" property failed to fetch a valid Google OAuth2 access token with the following error: "Error fetching access token: Error while making request: getaddrinfo ENOTFOUND metadata.google.internal metadata.google.internal:80. Error code: ENOTFOUND".
at FirebaseAppError.FirebaseError [as constructor] (/local/home/user/node_modules/firebase-admin/lib/utils/error.js:42:28)
at FirebaseAppError.PrefixedFirebaseError …Run Code Online (Sandbox Code Playgroud)