官方原生插件教程:
https://nativesupport.dcloud.net.cn/NativePlugin/course/ios.html#导入-uni-app-资源
官方离线SDK,包括插件demo
https://nativesupport.dcloud.net.cn/AppDocs/download/ios.html
官方uni原生插件包格式说明
https://nativesupport.dcloud.net.cn/NativePlugin/course/package.html
1、最好在官方提供的HBuilder-uniPluginDemo demo基础上自己创建iOS framework,这样免去很多xcode运行配置,其他文章也提到了用cocoapod方式,cocoapod方式不建议使用,很多错误无法定位,配置也很容易出错
2、iOS如果自定义的framework中用到了第三方sdk,需要将第三方sdk打包成framework,将第三方framework添加到自定义的framework中,一起编译,builde出来的.a或者.framework文件提供给uni-app使用,同时将引用的第三方framework放到uni-app项目 nativeplugins 目录下,具体的nativeplugins文件配置可以看官方文档;
3、遇到的几个uni-app引用插件包的问题:
module类型的插件文件,可以在uni-app任何位置和页面使用
component类型的组件:
1、只能在nvue中使用,不能在vue中使用,在vue中使用会无效
2、iOS传递事件名称和前端监听事件的名称都用小写字母
3、iOS传递给前端的事件是驼峰命名,vue3会将组件驼峰命名事件转化成'-'连接,例如将onEvent转化成on-event,防止其他情况转化,统一用小写字母命名
4、iOS所有组件的事件函数名称命名都是adevent,前端本地事件接收函数可以是其他的命名,例如:onRewardedAdEvent、onBannerAdEvent
如果在vue2版本中运行项目没有任何问题,在vue3中运行会提示下面这样的警告,如果不影响正常组件的展示和方法事件的调用,就不用处理:
Vue warn\]: Failed to resolve component: xh-mercad
11:58:16.704 If this is a native custom element, make sure to exclude it from component resolution via compilerOptions.isCustomElement.
11:58:16.704 at \