![](/img/trans.png)
[英]Ionic 6 Capacitor 3 Share Plugin Not Working with Android 12
[英]Ionic capacitor plugin not working for android
我编写了一个非常简单的插件,它从 android 设备获取所有消息并将其打包以响应。 当我使用npm install ionic-capacitor-sms-access
并尝试访问消息时,它只调用 web 方法而不是 android 方法。 所以它不起作用有人可以在这里帮助我并告诉我出了什么问题吗? 这是我的插件https://www.npmjs.com/package/ionic-capacitor-sms-access
(注:仅限android文件夹)
它有效,有两种方法可以实现这一点。
您需要做的只是继续遵循该教程的“自定义 JavaScript”部分,其中演示了如何在您的 ionic/typescripts 代码中使用您的插件。
如:
import { Plugins } from '@capacitor/core';
const { SuperGreatPlugin } = Plugins;
export class CustomSuperPlugin {
constructor() {
}
customAwesomeness() {
SuperGreatPlugin.awesome();
}
}
笔记:
您还可以从您发布的 npm package 导入您的插件。 但请注意生成的定义.ts 的第一行, declare module "@capacitor/core"
。 这意味着您必须从特定模块中找到您的插件,这里是“插件”作为其他插件的使用。
以下是方法二:
import { SuperGreatPlugin } from 'YOUR_PLUGIN_NPM_PACKAGE';
async pluginEcho() {
await Plugins.SuperGreatPlugin.echo({value: 'bla bla bla'})
}
在您的离子页面中调用 function pluginEcho()。
当我开始时,我真的很难区分 web 和原生插件,但最后我明白它们是完全分开的。
我建议在您的 web.ts 文件中重命名导出的 web 插件 object 并在名称中添加Web
。 对我来说,这也是必要的,以免出现编译错误。
TS2308: Module './definitions' has already exported a member named 'YourPlugin'. Consider explicitly re-exporting to resolve the ambiguity.
如果你想使用你的 web 插件,你可以导入并使用它:
import { YourWebPlugin } from 'YOUR_PLUGIN_NPM_PACKAGE';
YourWebPlugin.callSomething();
如果您想使用您导入的本机插件并像这样使用它:
import { Plugins } from '@capacitor/core';
const { YourPlugin } = Plugins;
YourPlugin.callSomething();
不要忘记将您的本机插件公开给您使用自定义插件https://capacitor.ionicframework.com/docs/plugins/android#export-to-capacitor的 android 应用程序项目
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.