Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
DCloud
unidocs-zh
提交
d7a5fc97
unidocs-zh
项目概览
DCloud
/
unidocs-zh
通知
3216
Star
106
Fork
815
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
94
列表
看板
标记
里程碑
合并请求
70
DevOps
流水线
流水线任务
计划
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
unidocs-zh
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
94
Issue
94
列表
看板
标记
里程碑
合并请求
70
合并请求
70
Pages
DevOps
DevOps
流水线
流水线任务
计划
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
流水线任务
提交
Issue看板
提交
d7a5fc97
编写于
10月 31, 2022
作者:
DCloud-yyl
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
完善iOS平台uts插件注意事项
上级
0531b10b
变更
1
隐藏空白更改
内联
并排
Showing
1 changed file
with
32 addition
and
27 deletion
+32
-27
docs/plugin/uts-plugin.md
docs/plugin/uts-plugin.md
+32
-27
未找到文件。
docs/plugin/uts-plugin.md
浏览文件 @
d7a5fc97
...
...
@@ -280,27 +280,31 @@ dependencies {
#### iOS 平台原生配置
app-ios 文件夹下存在
iOS
平台原生配置,包括以下目录或文件
app-ios 文件夹下存在
iOS
平台原生配置,包括以下目录或文件
|目录名/文件名 |用途|
|:---
|:---
|
|
Frameworks |iOS 插件需要引用的三方 framework 依赖库存放目录
|
|
Resources |iOS 插件需要引用的资源文件存放目录
|
|
info.plist|iOS 插件需要添加到原生工程 info.plist 中的配置文件
|
|
config.json| iOS 原生工程的配置文件
|
|index.uts
| 主入口,index.d.ts 声明的能力在 iOS 平台下的实现
|
|目录名/文件名 |用途
|
|:---
|:---
|
|
Frameworks |iOS平台插件需要引用的三方 framework 依赖库存放目录
|
|
Resources |iOS平台插件需要引用的资源文件存放目录
|
|
Info.plist |iOS平台插件需要添加到原生工程Info.plist中的配置文件
|
|
config.json |iOS平台原生工程的配置文件
|
|index.uts
|主入口,index.d.ts声明的能力在iOS平台下的实现
|
##### Frameworks
如果 uts 插件需要依赖三方库,需要将三方依赖库存放到 Frameworks 目录中,注意:目前仅支持 .framework 依赖库
iOS平台插件依赖的三方库存放目录,支持以下类型文件:
-
a
-
framework
-
xcframework
##### Resources
iOS平台原生资源目录,建议只保存uts插件内置的资源文件。云端打包时会将此目录下的所有文件添加到应用 main bundle 中。
如果 uts 插件需要依赖资源文件,需要将资源文件存放到 Resources 目录中,打包时会将 Resources 目录中的所有文件添加到应用 main bundle 中
除了插件下有Resources目录,项目下也有。注意2者的区别。一般使用者的配置不放在插件下,而放在自己的项目下。项目下配置
[
详见
](
https://uniapp.dcloud.net.cn/tutorial/app-nativeresource-ios.html#%E8%B5%84%E6%BA%90%E6%96%87%E4%BB%B6-bundle-resources
)
##### info.plist
##### Info.plist
iOS平台原生 Info.plist 文件配置,云端打包时会将配置信息合并到原生工程的 Info.plist 中。
如果 uts 插件需要在原生工程的 info.plist 中添加配置,则需要在插件工程中添加 info.plist 配置文件添加插件所需要的配置项,打包时会将配置信息同步到原生工程的 info.plist 中
除了插件下有Info.plist,项目下也有。注意2者的区别。一般使用者的配置不放在插件下,而放在自己的项目下。项目下配置
[
详见
](
https://uniapp.dcloud.net.cn/tutorial/app-nativeresource-ios.html#%E9%85%8D%E7%BD%AE%E6%96%87%E4%BB%B6-info-plist
)
示例: 添加位置权限描述信息 和 开启后台定位
...
...
@@ -313,8 +317,6 @@ app-ios 文件夹下存在 iOS 平台原生配置,包括以下目录或文件
<string>
访问位置权限
</string>
<key>
NSLocationWhenInUseUsageDescription
</key>
<string>
使用期间获取位置权限
</string>
<key>
TencentLBSAPIKey
</key>
<string>
LZTBZ-77PCJ-HJAFN-KWXJ2-H357V-DJBK4
</string>
<key>
UIBackgroundModes
</key>
<array>
<string>
location
</string>
...
...
@@ -324,8 +326,7 @@ app-ios 文件夹下存在 iOS 平台原生配置,包括以下目录或文件
```
##### config.json
uts 插件在 iOS 平台的原生层配置文件,可以在其中配置依赖的系统库等配置信息
uts插件在iOS平台的其它原生配置文件,可以在其中配置依赖的系统库等信息
```
json
{
...
...
@@ -343,6 +344,7 @@ uts 插件在 iOS 平台的原生层配置文件,可以在其中配置依赖
-
iOS 平台 uts 原生插件需提交云端打包才能生效,真机运行时需使用
[
自定义基座
](
https://uniapp.dcloud.net.cn/tutorial/run/run-app.html#customplayground
)
## 3 开发uts原生插件
以获取电量为例,介绍uts原生插件开发步骤
...
...
@@ -486,36 +488,39 @@ getBatteryCapacity()
-
Android上,运行体验与uni-app基本无差异。一样可以热刷新,打印console.log。
-
iOS上,uts
插件需提交云端打包才能生效,真机运行时需使用
[
自定义基座
](
https://uniapp.dcloud.net.cn/tutorial/run/run-app.html#customplayground
)
-
iOS上,uts
插件暂不支持热刷新,真机需提交云端打包生成
[
自定义基座
](
https://uniapp.dcloud.net.cn/tutorial/run/run-app.html#customplayground
)
才能生效
### 5.2 自定义基座
自定义基座
也
支持uts插件。
自定义基座支持uts插件。
Android上编写普通uts代码时标准基座也可以。但与原生插件一样,涉及以下场景,需要自定义基座后方能生效:
#### Android平台
普通uts代码可以直接使用标准基座真机运行。但与原生插件一样,涉及以下场景,需要自定义基座后方能生效:
-
1 集成三方sdk
-
2 新增资源(包括res/asset 等)
总结来说,就是所有 涉及新增依赖/gralde配置/androidManifest.xml/资源 等标准基座不具备的能力时,需要自定义基座
#### iOS平台
uts代码暂不支持直接使用标准基座真机运行。与原生插件一眼,需要自定义基座才能生效。
### 5.3 遗留问题
截止到HBuilderX 3.6.2 时遗留事项:
-
不能debug断点uts源码
-
uts插件还不支持远程仓库依赖,目前添加插件的配置方法参考
[
这个章节
](
#tempnotice
)
-
uts插件无法使用res。图片资源建议放在assets目录。
-
不能debug断点uts源码
-
Android平台uts插件还不支持远程仓库依赖,目前添加插件的配置方法参考
[
这个章节
](
#tempnotice
)
-
Android平台uts插件无法使用res,图片资源建议放在assets目录
-
iOS平台uts插件需要提交云端生成自定义基座才能真机运行,修改uts代码后需重新提交云端打包才能生效
遗留事项后续升级完善。
## 6 云端打包
正常支持云端打包。
## 6 云端打包
注意:虽然uts在Android真机运行时支持热刷,但打包后uts编译为了纯原生二进制代码,不支持wgt热更新。
正常支持云端打包。但打包后uts编译为了纯原生二进制代码,不支持wgt热更新。
打包若包含了uni-app引擎内置的依赖库,会报错。需注意参考
[
这个章节
](
#tempnotice
)
## uni-app的Android内置库@iodcloudutsandroid
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录