尝试使用
@capacitor/push-notifications
插件请求权限时遇到问题。我遵循自述文件中描述的每个步骤,并且使用 Ionic 和 Vue 3。
这是
package.json
:
...
"@capacitor/android": "^3.2.0",
"@capacitor/core": "^3.2.0",
"@capacitor/push-notifications": "^1.0.3",
"@ionic/vue": "^5.4.0"
...
这是请求权限的方法:
requestFCMPermissions(context: AuthContext) {
PushNotifications.requestPermissions().then(result => {
if (result.receive === "granted") {
PushNotifications.register();
...
} else {
...
}
});
...
}
当然,当通过 Web 尝试时,这不起作用,但是,当我组装 APK 并对其进行配置时,它会在控制台日志中回复我一个错误:
"PushNotifications" plugin is not implemented on android
有人知道为什么吗?谢谢!
解决了我编辑
MainActivity.java
文件的问题:
public class MainActivity extends BridgeActivity {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
// Initializes the Bridge
this.init(savedInstanceState, new ArrayList<Class<? extends Plugin>>() {{
// Additional plugins you've installed go here
//...
add(com.capacitorjs.plugins.pushnotifications.PushNotificationsPlugin.class);
}});
}
}
但是任何教程中都没有指定这一点,所以它可能适合我的配置。
我遇到了同样的问题并且吓坏了。推送通知可以在模拟器上运行,但不能在真实设备上运行。
有帮助的是删除 android 文件夹。我进行了全新安装
cap add android
并使用 git 检查了差异。
就我而言,必须删除
app/build.gradle
中的以下代码行。
def enableProguardInReleaseBuilds = true
我忘记运行
npx cap update android
这解决了我的问题。还可以尝试构建并限制副本,或删除整个 Android 并重建。