混合开发:2. iOS 与 UniApp 交互

整个App页面 由 UniApp 开发: _App离线打包 的方式, 通过UniPugn的方式交互;

1. SDK的下载及集成步骤方法:

https://nativesupport.dcloud.net.cn/AppDocs/usesdk/ios.html
交互:https://nativesupport.dcloud.net.cn/NativePlugin/course/ios.html

  • eg: SDK 3.7.3 :
    可直接用自带的 HBuilder-uniPluginDemo 工程集成Uni的代码 打包安装,
    HBuilder-uniPluginDemo:配置好了与iOS原生交互的插件 示例可直接用;
企业微信截图_330a0e0f-c5f6-4dc6-b05a-c96c442b81ab.png

2. 集成注意事项:

    1. 在XCode工程中配置好AppKey(先申请好):必须是本项目 iOS平台的Appkey:
企业微信截图_65ebb227-e7e6-4dd2-95b0-030a4168768e.png
企业微信截图_ab951685-376d-4898-97cb-af4e40a62a5d.png
    1. 在XCode工程中 设置好 UniApp 的 AppID :
      这几处AppID必须设定一致: (如果不一致会报Appkey配置错误)
企业微信截图_4f2b00a3-8c62-4896-bb6c-9eb9ae140950.png
企业微信截图_b4a03d43-dcac-4841-be07-b41e32566ce0.png
  1. 在XCode工程中 Bundle ID 必须与申请APPKey是填的一致:


    企业微信截图_7b75d68c-fc5a-467f-813b-af7528cc25ca.png
企业微信截图_ef8227a5-967d-4e4a-8e83-29bc31baca19.png

# 3.UniApp 与 iOS 原生交互: 是通过 开发UniApp插件的形式

unityLibrary.h

#import "DCUniModule.h"

NS_ASSUME_NONNULL_BEGIN

@interface unityLibrary : DCUniModule

@end

NS_ASSUME_NONNULL_END

unityLibrary.m

#import "unityLibrary.h"

@implementation unityLibrary

// 通过宏 UNI_EXPORT_METHOD_SYNC 将同步方法暴露给 js 端
UNI_EXPORT_METHOD_SYNC(@selector(gotoUnity3dPage:))

/// 同步方法(注:同步方法会在 js 线程执行)
/// @param options js 端调用方法时传递的参数   支持:String、Number、Boolean、JsonObject 类型
- (NSString *)gotoUnity3dPage:(NSString *)options {
    NSLog(@"--- js端传递的参数==%@ --",options);
    [[NSNotificationCenter defaultCenter] postNotificationName:@"YEStrUnityLibraryToUnity" object:options];
    //可以在该方法中实现原生功能,然后直接通过 return 返回参数给 js
    // 同步返回参数给 js 端  支持:NSString、NSDictionary(只能包含基本数据类型)、NSNumber 类型
    return @"success";
}

@end

企业微信截图_2f534554-b2d3-4a26-bc9b-5b4b89c66d40.png
企业微信截图_cfb76f62-eeef-4832-9f3a-f936a59cd14e.png

Uni 中:


企业微信截图_ea59653d-d15d-4040-8ec0-a919b6a01a99.png
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容