# BRTWebSDK_IOS **Repository Path**: brtbeacon/BRTWebSDK_IOS ## Basic Information - **Project Name**: BRTWebSDK_IOS - **Description**: No description available - **Primary Language**: Objective-C - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2019-06-17 - **Last Updated**: 2021-06-22 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # ZSWebSDK - ##### 项目介绍 通过APP展示H5地图,本demo主要包含app与h5交互:展示H5地图、js调用APP蓝牙和GPS状态、调用IOS系统分享、APP传人js扫描数据等。
## 一、推荐使用CocoaPods集成 直接新建或在已有Profile文件添加库,并pod update即可: ``` pod 'ZSWebSDK' ``` ##### 或手动集成文件 1、拷贝本demo内ZSWebSDK文件夹
2、找到 Target -> 'General' -> 'Embedded Binaries', 添加上边拖入的TTLock.framework。 ## 二、info.plist权限配置,文字可以自行定义 配置项目Info.plist文件:蓝牙开锁权限、定位权限、实景相机、麦克风使用权限,请自定义描述文字,示例: ``` NSLocationWhenInUseUsageDescription 扫描周边iBeacon定位 NSCameraUsageDescription 开启实景导航 NSBluetoothAlwaysUsageDescription 用于扫描周边服务 NSMicrophoneUsageDescription 用于语音搜索服务 ``` ## 三、SDK初始化及调用方式示范 初始化webview和url加载,判断是否为brtbeacon链接,再传入当前WKWebView即可,完整示范如下 ``` @interface ViewController () @property (nonatomic,strong) WKWebView *webView; @property (nonatomic,strong) ZSWebSDK *webSDK; @end - (void)viewDidLoad { [super viewDidLoad]; WKWebViewConfiguration *cfg = [[WKWebViewConfiguration alloc] init]; //如果项目包含实景导航,配置允许H5显示摄像头 cfg.allowsInlineMediaPlayback = YES; if (@available(iOS 13.0, *)) { cfg.defaultWebpagePreferences.preferredContentMode = WKContentModeMobile; } //初始化webview以及加载URL _webView = [[WKWebView alloc] initWithFrame:self.view.bounds configuration:cfg]; [self.view addSubview:self.webView]; NSString *url = @"https://请注意一般需要https链接"; [self.webView loadRequest:[NSURLRequest requestWithURL:[NSURL URLWithString:url]]]; // //添加判断URL链接内容是否包含:brtbeacon,包含即使用ZSWebSDK处理webView。 if ([url rangeOfString:@"brtbeacon"].length) { self.webSDK = [[ZSWebSDK alloc] initWithWebView:self.webView]; //或使用类方法:[ZSWebSDK setupWebView:self.webView]; } } ```

### 注意:如果上传到App Store遇到[unsupported architectures] -- ![unsupported architectures](http://ikennd.ac/pictures/iTC-Unsupported-Archs.png) 问题详情介绍参见 [Stripping Unwanted Architectures ](http://ikennd.ac/blog/2015/02/stripping-unwanted-architectures-from-dynamic-libraries-in-xcode/) 需要在target -> Build Phases添加Run Script,复制以下代码并在XCode的Run Script下方+号添加Input Files(如本示例TTLock.framework在项目根目录直接填写$(SRCROOT)/TTLock.framework,因为提供的库是支持i386、x86_64 、armv7、 arm64的动态库,上传到App Store,需要去除i386、x86_64模拟器版本库,要不然会报错。) ``` APP_PATH="${TARGET_BUILD_DIR}/${WRAPPER_NAME}" # This script loops through the frameworks embedded in the application and # removes unused architectures. find "$APP_PATH" -name '*.framework' -type d | while read -r FRAMEWORK do FRAMEWORK_EXECUTABLE_NAME=$(defaults read "$FRAMEWORK/Info.plist" CFBundleExecutable) FRAMEWORK_EXECUTABLE_PATH="$FRAMEWORK/$FRAMEWORK_EXECUTABLE_NAME" echo "Executable is $FRAMEWORK_EXECUTABLE_PATH" EXTRACTED_ARCHS=() for ARCH in $ARCHS do echo "Extracting $ARCH from $FRAMEWORK_EXECUTABLE_NAME" lipo -extract "$ARCH" "$FRAMEWORK_EXECUTABLE_PATH" -o "$FRAMEWORK_EXECUTABLE_PATH-$ARCH" EXTRACTED_ARCHS+=("$FRAMEWORK_EXECUTABLE_PATH-$ARCH") done echo "Merging extracted architectures: " lipo -o "$FRAMEWORK_EXECUTABLE_PATH-merged" -create "${EXTRACTED_ARCHS[@]}" rm "${EXTRACTED_ARCHS[@]}" echo "Replacing original executable with thinned version" rm "$FRAMEWORK_EXECUTABLE_PATH" mv "$FRAMEWORK_EXECUTABLE_PATH-merged" "$FRAMEWORK_EXECUTABLE_PATH" done ``` ### 更新日志 2021.06.21
添加H5打开实景导航功能,优化多UUID扫描逻辑 2020.11.30
修正蓝牙开锁SDK导致IOS14闪退 2019.07.10
修正蓝牙开关时候弹窗提示闪退 2019.06.28
添加CocoaPods支持 2019.06.19
新增WebSDK工具类,优化扫描接口 2019.03.29
新增实景代码,需新增相机权限NSCameraUsageDescription和修改WebVC类 2018.10.12
重新编译TTLock.framework,启用bitcode 2018.9.20
修正钥匙链接 2018.9
添加APP开锁代码:LockManager类 添加js alert等支持 添加detail接口