Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
DCloud
unidocs-uni-app-x-zh
提交
16645c56
U
unidocs-uni-app-x-zh
项目概览
DCloud
/
unidocs-uni-app-x-zh
通知
144
Star
2
Fork
33
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
9
列表
看板
标记
里程碑
合并请求
11
DevOps
流水线
流水线任务
计划
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
U
unidocs-uni-app-x-zh
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
9
Issue
9
列表
看板
标记
里程碑
合并请求
11
合并请求
11
Pages
DevOps
DevOps
流水线
流水线任务
计划
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
流水线任务
提交
Issue看板
提交
16645c56
编写于
7月 10, 2024
作者:
DCloud_iOS_WZT
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
更新 iOS原生SDK通信部分描述
上级
41bb5535
变更
3
隐藏空白更改
内联
并排
Showing
3 changed file
with
93 addition
and
28 deletion
+93
-28
docs/native/modules/ios/modules.md
docs/native/modules/ios/modules.md
+12
-7
docs/native/use/ios.md
docs/native/use/ios.md
+3
-3
docs/native/use/iosapi.md
docs/native/use/iosapi.md
+78
-18
未找到文件。
docs/native/modules/ios/modules.md
浏览文件 @
16645c56
...
@@ -8,12 +8,17 @@
...
@@ -8,12 +8,17 @@
> 你可以选择新建工程或直接使用demo中的`DCloudUTSExtAPI`工程
> 你可以选择新建工程或直接使用demo中的`DCloudUTSExtAPI`工程
### 工程环境设置
### 工程环境设置
`Target -> General -> Minimum Deployments`
选择
`12.0`
`Target -> General -> Minimum Deployments`
选择
`12.0`
`Target -> Build Settings -> Mach-O Type`
设置为
`Dynamic Library`
`Target -> Build Settings -> Other Linker Flags`
中添加
`-ObjC`
, 字母o和c大写
`Target -> Build Settings -> Mach-O Type`
设置为
`Dynamic Library`
`Target -> Build Settings -> Enable Module Verifier`
设置为
`NO`
`Target -> Build Settings -> Build Libraries for Distribution`
设置为
`YES`
`Target -> Build Settings -> Other Linker Flags`
中添加
`-ObjC`
, 字母o和c大写
`Target -> Build Settings -> Framework Search Paths`
中添加SDK的Libs目录(操作方法:双击展开
`Framework Search Paths`
将
`SDK/Libs`
文件夹拖入即可)
`Target -> Build Settings -> Enable Module Verifier`
设置为
`NO`
`Target -> Build Settings -> Build Libraries for Distribution`
设置为
`YES`
`Target -> Build Settings -> Framework Search Paths`
中添加SDK的Libs目录(操作方法:双击展开
`Framework Search Paths`
将
`SDK/Libs`
文件夹拖入即可)
### 配置基础模块(必须)
### 配置基础模块(必须)
将以下源文件(
`SDK/ExtApiSrc 目录下`
)、依赖库(
`SDK/Libs 目录下`
)添加到
`DCloudUTSExtAPI`
工程中,并将依赖库均设置为
`Do Not Embed`
将以下源文件(
`SDK/ExtApiSrc 目录下`
)、依赖库(
`SDK/Libs 目录下`
)添加到
`DCloudUTSExtAPI`
工程中,并将依赖库均设置为
`Do Not Embed`
...
@@ -352,7 +357,7 @@ xcodebuild -create-xcframework -framework 真机路径/DCloudUTSExtAPI.framework
...
@@ -352,7 +357,7 @@ xcodebuild -create-xcframework -framework 真机路径/DCloudUTSExtAPI.framework
<string>广告联盟id,如未开通uniad可不填</string>
<string>广告联盟id,如未开通uniad可不填</string>
</dict>
</dict>
```
```
![](
https://web-ext-storage.dcloud.net.cn/native/doc/iOS/uniappx_info.png
)
![](
https://web-ext-storage.dcloud.net.cn/native/doc/iOS/uniappx_
app_
info.png
)
### 增强广告(可选)
### 增强广告(可选)
#### 添加依赖库以及资源文件
#### 添加依赖库以及资源文件
...
...
docs/native/use/ios.md
浏览文件 @
16645c56
...
@@ -8,7 +8,7 @@
...
@@ -8,7 +8,7 @@
*
通过
`HBuilder X`
导出资源文件,根据资源内容,配置
`原生主工程`
环境,添加基础模块需要的依赖库以及资源文件
*
通过
`HBuilder X`
导出资源文件,根据资源内容,配置
`原生主工程`
环境,添加基础模块需要的依赖库以及资源文件
*
根据资源文件中的
`manifest.json`
文件中包含的模块,制作
`DCloudUTSExtAPI.xcframework`
,并将其添加到
`原生主工程`
中,详见
[
集成内置模块
](
../modules/ios/modules.md
)
*
根据资源文件中的
`manifest.json`
文件中包含的模块,制作
`DCloudUTSExtAPI.xcframework`
,并将其添加到
`原生主工程`
中,详见
[
集成内置模块
](
../modules/ios/modules.md
)
*
根据资源文件中的
`manifest.json`
文件中包含的模块,向
`原生主工程`
添加工程配置以及内置模块需要的资源文件等,详见
[
集成内置模块
](
../modules/ios/modules.md
)
*
根据资源文件中的
`manifest.json`
文件中包含的模块,向
`原生主工程`
添加工程配置以及内置模块需要的资源文件等,详见
[
集成内置模块
](
../modules/ios/modules.md
)
*
根据资源文件中的
`uni_modules`
文件夹中包含的UTS插件,制作对应的原生xcframework,并将其添加到
`原生主工程`
(付费购买的uts插件不支持原生工程
使用
),详见
[
制作UTS插件
](
iosuts.md
)
*
根据资源文件中的
`uni_modules`
文件夹中包含的UTS插件,制作对应的原生xcframework,并将其添加到
`原生主工程`
(付费购买的uts插件不支持原生工程
接入
),详见
[
制作UTS插件
](
iosuts.md
)
*
根据API文档接入SDK,详见
[
API文档
](
iosapi.md
)
*
根据API文档接入SDK,详见
[
API文档
](
iosapi.md
)
## 导出资源文件
## 导出资源文件
...
@@ -43,7 +43,7 @@
...
@@ -43,7 +43,7 @@
<key>uniapp-x</key>
<key>uniapp-x</key>
<dict>
<dict>
<key>appid</key>
<key>appid</key>
<string>
您
应用的appid</string>
<string>应用的appid</string>
<key>ipatype</key>
<key>ipatype</key>
<integer>1</integer>
<integer>1</integer>
<key>singleThread</key>
<key>singleThread</key>
...
@@ -55,7 +55,7 @@
...
@@ -55,7 +55,7 @@
</dict>
</dict>
</dict>
</dict>
```
```
![](
https://web-ext-storage.dcloud.net.cn/native/doc/iOS/uniappx_info.png
)
![](
https://web-ext-storage.dcloud.net.cn/native/doc/iOS/uniappx_
app_
info.png
)
...
...
docs/native/use/iosapi.md
浏览文件 @
16645c56
> *
仅打包
可参考HBuilder工程
> *
快速集成打包,
可参考HBuilder工程
> * SDK基于Swift开发,因此原生Objective-C语言开发的应用需要新建一个Swift文件用于添加Swift运行环境以及桥接SDK的API,详情可参考UniAppXDemo工程中的`UniAppBridge`
> * SDK基于Swift开发,因此原生Objective-C语言开发的应用需要新建一个Swift文件用于添加Swift运行环境以及桥接SDK的API,详情可参考UniAppXDemo工程中的`UniAppBridge`
## 初始化SDK
## 初始化SDK
在 AppDelegate 的 didFinishLaunchingWithOptions 中初始化
在 AppDelegate 的 didFinishLaunchingWithOptions 中初始化
```
```
swift
import
DCloudUniappRuntime
import
DCloudUniappRuntime
UniSDKEngine
.
shared
.
create
()
UniSDKEngine
.
shared
.
create
()
```
```
## 监听应用生命周期函数回调
## 监听应用生命周期函数回调
在 AppDelegate 的 didFinishLaunchingWithOptions调用
在 AppDelegate 的 didFinishLaunchingWithOptions
调用
```
```
swift
UniSDKEngine
.
applicationDidFinishLaunchingWithOptions
(
application
,
launchOptions
)
UniSDKEngine
.
applicationDidFinishLaunchingWithOptions
(
application
,
launchOptions
)
```
```
在 AppDelegate 的 applicationDidBecomeActive 调用
在 AppDelegate 的 applicationDidBecomeActive 调用
```
```
swift
UniSDKEngine
.
applicationDidBecomeActive
(
application
)
UniSDKEngine
.
applicationDidBecomeActive
(
application
)
```
```
在 AppDelegate 的 applicationWillResignActive 调用
在 AppDelegate 的 applicationWillResignActive 调用
```
```
swift
UniSDKEngine
.
applicationWillResignActive
(
application
)
UniSDKEngine
.
applicationWillResignActive
(
application
)
```
```
在 AppDelegate 的 applicationDidEnterBackground 调用
在 AppDelegate 的 applicationDidEnterBackground 调用
```
```
swift
UniSDKEngine
.
applicationDidEnterBackground
(
application
)
UniSDKEngine
.
applicationDidEnterBackground
(
application
)
```
```
在 AppDelegate 的 applicationWillEnterForeground 调用
在 AppDelegate 的 applicationWillEnterForeground 调用
```
```
swift
UniSDKEngine
.
applicationWillEnterForeground
(
application
)
UniSDKEngine
.
applicationWillEnterForeground
(
application
)
```
```
在 AppDelegate 的 openURL 调用
在 AppDelegate 的 openURL 调用
```
```
swift
UniSDKEngine
.
applicationOpenURLOptions
(
application
,
url
,
options
)
UniSDKEngine
.
applicationOpenURLOptions
(
application
,
url
,
options
)
```
```
在 AppDelegate 的 continueUserActivity 调用
在 AppDelegate 的 continueUserActivity 调用
```
```
swift
UniSDKEngine
.
applicationContinueUserActivityRestorationHandler
(
application
,
userActivity
,
restorationHandler
)
UniSDKEngine
.
applicationContinueUserActivityRestorationHandler
(
application
,
userActivity
,
restorationHandler
)
```
```
## 监听推送相关函数回调(可选)
## 监听推送相关函数回调(可选)
在 AppDelegate 的 didRegisterForRemoteNotificationsWithDeviceToken 调用
在 AppDelegate 的 didRegisterForRemoteNotificationsWithDeviceToken 调用
```
```
swift
UniSDKEngine
.
didRegisterForRemoteNotifications
(
deviceToken
)
UniSDKEngine
.
didRegisterForRemoteNotifications
(
deviceToken
)
```
```
在 AppDelegate 的 didFailToRegisterForRemoteNotificationsWithError 调用
在 AppDelegate 的 didFailToRegisterForRemoteNotificationsWithError 调用
```
```
swift
UniSDKEngine
.
didFailToRegisterForRemoteNotifications
(
error
)
UniSDKEngine
.
didFailToRegisterForRemoteNotifications
(
error
)
```
```
在 AppDelegate 的 didReceiveRemoteNotification 调用
在 AppDelegate 的 didReceiveRemoteNotification 调用
```
```
swift
UniSDKEngine
.
applicationDidReceiveRemoteNotificationCompletionHandler
(
application
,
userInfo
,
completionHandler
)
UniSDKEngine
.
applicationDidReceiveRemoteNotificationCompletionHandler
(
application
,
userInfo
,
completionHandler
)
```
```
## 开始渲染
## 开始渲染
```
```
swift
UniSDKEngine
.
shared
.
render
(
toView
:
toView
)
UniSDKEngine
.
shared
.
render
(
toView
:
toView
)
```
```
# 通信
# 通信
iOS平台目前不支持直接在uvue页面调用原生API,开发者可通过UTS插件
`发送or接收Notification`
实现与原生通信
iOS平台目前不支持直接在uvue页面调用原生API,开发者可通过UTS插件
`发送/接收 通知消息`
实现与原生App通信,具体实现代码如下:
\ No newline at end of file
## 原生APP向SDK发消息
UTS插件添加监听:
```
ts
const
name
=
"
com.ios.notification.name1
"
;
//通知消息标识
const
notificationName
=
new
Notification
.
Name
(
name
);
const
method
=
Selector
(
"
handleReceiveMessage:
"
)
//接收通知消息的方法名
NotificationCenter
.
default
.
addObserver
(
this
,
selector
=
method
,
name
=
notificationName
,
object
=
null
)
```
```
ts
@
objc
static
handleReceiveMessage
(
notification
:
Notification
)
{
let
userInfo
=
notification
.
userInfo
if
(
userInfo
!=
null
){
const
message
=
userInfo
!
[
"
msg
"
];
}
}
```
原生发送通知消息:
```
swift
let
name
=
"com.ios.notification.name1"
;
//通知消息标识
let
message
=
"消息内容"
;
let
userInfo
:
[
AnyHashable
:
Any
]
=
[
"msg"
:
message
// 你可以在这里放置任何需要传递的信息
]
NotificationCenter
.
default
.
post
(
name
:
Notification
.
Name
(
name
),
object
:
nil
,
userInfo
:
userInfo
)
```
## SDK向原生APP发消息
原生添加通知监听:
```
swift
const
name
=
"com.ios.notification.name2"
;
//通知消息标识
NotificationCenter
.
default
.
addObserver
(
self
,
selector
:
#selector(
handleNotification(_:)
)
,
name
:
Notification
.
Name
(
name
),
object
:
nil
)
```
```
swift
@objc
func
handleNotification
(
_
notification
:
Notification
)
{
if
let
message
=
(
notification
.
userInfo
?[
"msg"
]
as?
String
)
{
// 使用message
print
(
message
)
}
}
```
UTS插件发送消息:
```
ts
const
name
=
"
com.ios.notification.name2
"
;
//通知消息标识
const
message
=
"
消息内容
"
;
const
notificationName
=
new
Notification
.
Name
(
name
);
const
userInfo
=
new
Map
<
string
,
any
>
()
userInfo
.
set
(
"
msg
"
,
message
);
// 你可以在这里放置任何需要传递的信息
NotificationCenter
.
default
.
post
(
name
=
notificationName
,
object
=
null
,
userInfo
=
userInfo
);
```
> 注意:消息接收方必须在发送通知前添加监听事件,否则收不到消息
## 运行示例
`UniAppXDemo`
工程中,
`__UNI__00DC103`
为通信示例资源文件,将
`Info.plist`
中
`uniapp-x`
节点下的
`appid`
改为
`__UNI__00DC103`
,并添加
`unimoduleTestIosNotification.xcframework`
依赖,即可体验通信示例
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录