weex

分类下相关文章

Weex 应用发布苹果应用商店审核被拒 - 移除 ATSDK 解决

收到苹果审核的拒绝邮件,提示说 Weex 应用使用了非公开的 API,IOKit.framework APIs. Guideline 2.5.1 - Performance - Software Requirements Your app uses or references the following non-public APIs: IOKit.framework APIs. The use of non-public APIs is not permitted on the App Store because it can lead to a poor user experienc ...

阅读全文...

关于 React Native / Weex 的性能

大部分翻译自 https://facebook.github.io/react-native/docs/performance.html 使用 React Native 而不是 WebView 的一个重要原因是,为了达到每秒 60 帧,以保证界面在视觉和体验上与原生应用没有区别。 关于 frames 你需要知道的事情 每秒钟展示的帧数决定了界面的流程度。iOS 设备每秒展示 60 帧,即你和 UI 系统只有 16.67ms 来完成所有的工作以生成一张静态帧,否则就会导致丢帧现象,导致用户会感觉界面没有及时响应。 JS frame rate (JavaScript thread) 对于大部分的 ...

阅读全文...

weex 界面的侧滑、抖动问题

用 weex 写的部分界面有明显的侧滑、抖动问题。即,界面内容,先集中在左侧,然后慢慢向右侧展开。或者,集中在左上角,然后向右下展开。 一开始,就怀疑这类似于网页的渲染问题,在标签没有写死宽高的情况下,需要子元素加载完才能计算出宽高,从而导致抖动问题。 而且,仔细观察了一个抖动的页面,其顶部 banner 和底部 tabbar 都渲染正常,只有中间部分会出现抖动。说明并不是 weex 的渲染问题,一定是写的样式有问题。(这个猜想是回家开车途中想到的。。。) 果然,将 flex 布局的每一行外层设定宽度为 750px 之后,侧滑、抖动问题就消失了。 比较特殊的一个案例是,有个区域的图片 widt ...

阅读全文...

升级 Weex Android SDK 版本

sdk 版本列表 目前最新的版本为 0.16.2 https://github.com/apache/incubator-weex/releases sdk 各版本的 release notes https://weex-project.io/cn/releasenote.html assets/main.js scripts/build_from_source.sh Showing the top four matches Last indexed on 26 Sep 32 sleep 2 33 34 cp packages/weex-js-framework/index.min.js i ...

阅读全文...

Weex 的反思: 原生开发才是正道,混合开发只能是辅助

之前两个月的项目,算是把 Weex 完整的体验了一遍。涉及到的功能及技术、更多的是坑 调用原生功能:拍照、蓝牙设备、扫描二维码、聊天、消息推送等 Android 页面间切换卡顿 对于 Gif 动画的支持 base64 图片的支持。参考 weex android 支持 base64 iOS 下键盘影响布局的 bug Android 切换页面时出现选择框的 bug。参考 Weex Android 避免切换页面时弹出应用选择框 weex android iOS 加载本地图片 Weex 的三端合一纯属扯淡。因为 H5 端用这个写太弱了,而且费时费力 weex picker 在 androi ...

阅读全文...

使用 Weex Storage 解决环信用户昵称的显示问题 (iOS,Android)

问题是这样的,服务器端注册环信账号时,设置了昵称,但是在 APP 客户端却怎么也读取不到,而环信的管理后台却可以看到用户昵称。 查了一下,发现环信服务端并不给其 SDK 提供昵称。。。环信这群垃圾! 基本的实现思路是,在 weex js 端拉取自己服务器中的联系人列表,然后通过 storage module 与 native 代码共享联系人昵称。 这个过程需要阅读 weex sdk storage 以及 EaseUI 的实现代码,不得不说 weex 与环信的文档都写得非常不认真,遗漏了诸多细节,只能自己查看源代码,差评。 Android 获取用户昵称的实现 在调用 EaseUI.getIns ...

阅读全文...

Weex Android 接入环信聊天功能(二)会话列表页面

环信的文档真是不靠谱,需要不断地查解决方案 Failed to open database '/storage/emulated/0/emlibs/libs/monitor.db'. 6.0的手机系统需要去动态获取权限 <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" /> <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /> And ...

阅读全文...

Weex Android 接入环信聊天功能(一)会话窗口

交互逻辑 点击交流功能 -> 进入环信 Demo 的通信录页面?会话列表页面?感觉会话列表页面更合理一点 从 Weex 通信录点击发送信息 -> 进入环信 Demo 的具体某个联系人的实时聊天页面 实际上就是在 Weex 中需要跳转到 demo 里的具体某个 activity。 最麻烦的逻辑在于如何从环信 UI 跳回到 Weex 的页面。 Android Activity 间的切换 实现参考 Start Another Activity | Android Developers Android 官方的 Getting Started 是最好的入门文档。 首先,下载个 demo ...

阅读全文...

Weex Android 避免切换页面时弹出应用选择框

当系统中安装了多个 Weex 开发的 Android APP 时,如果使用 navigator.push 来切换页面,会弹出一个应用选择框,即使用哪个 APP 来打开目标页面。 出现这个问题的原因是,WEEX 使用的是隐式的 intent filter, 而注册的 intent category 都是写死的。所以,这些 WEEX 应用在 Android 系统中都注册了同样的 category 目前使用的糙快猛的解决方案,直接改 SDK 源码。。。 platforms/android/app/src/main/AndroidManifest.xml - <category android ...

阅读全文...

定位 Weex Vue Mixin 无法使用的问题

现象是 Mixin 中定义的函数,在 Vue 页面中调用的时候,均显示未定义。 问题定位方法: 先写一个简单的页面,引用 Mixin 中的函数,测试一下。(去掉 Store) test 页面中引入一张测试图片 为其单独写一个 entry.js entry.js 中去掉 store, filter 的注册,只保留 mixin 测试结果 页面可以正常运行。 继续定位,加入 Store 呢? 能够正常运行,但是问题出现了,所有的 Views 都被编译进了 bundle 里。 机制地 grep 了一下 grep import -r src/store 原来罪魁祸首在 store/fetch.j ...

阅读全文...

Weex 编译单个 Vue 文件的 Webpack 配置

一个诡异的现象, 使用以下配置的 webpack 打包的 weex 文件,在 Android 里一直转菊花,而且 Android Monitor 里没有有效的报错信息 var testConfig = { entry: { // 'test_b': path.resolve('src/views', 'test_b.vue?entry=true'), 'test_b': path.resolve('src/views', 'test_b.vue'), }, output: { path: path.resolve(__dirname ...

阅读全文...

Weex Module Callback 的用法

Module 支持返回值给 JavaScript中的回调,回调的类型是WXModuleCallback,回调的参数可以是String或者Map @implementation WXEventModule @synthesize weexInstance; WX_EXPORT_METHOD(@selector(openURL:callback)) - (void)openURL:(NSString *)url callback:(WXModuleCallback)callback { NSString *newURL = url; if ([url hasPrefix:@& ...

阅读全文...

Weex iOS 接入信鸽消息推送 SDK

信鸽 iOS SDK 接入文档 http://docs.developer.qq.com/xg/iosjie-ru.html 文档写的非常垃圾,需要参考 demo 代码才能明白具体的细节 (AppDelegate.m) 测试时不要使用 demo 中默认的账号 "myAccount" 否则会报错 2017-07-23 11:05:01.694235+0800 WeexDemo[5310:1996359] [xgpush info]msgLen's length is 11 2017-07-23 11:05:01.694374+0800 WeexDemo[5310:199635 ...

阅读全文...

WEEX 扫描二维码 - iOS

Weex *.vue 文件中的调用方法 scan = weex.requireModule('jd-scan') scan.scanCode(res=>{ if(res.result){ console.log(res.data) } }) iOS 的原生实现 JDScan.h #ifndef JDScan_h #define JDScan_h #import <WeexSDK/WeexSDK.h> typedef void (^CallBlock)(NSDictionary*); // 定义回调函数 @interface JDScanModule :NSOb ...

阅读全文...

weex 通过扩展模块实现原生电话功能 Android 及 iOS

WEEX 默认不支持 iOS Android 原生的电话功能,需要自己扩展模块。以下是实现方法 iOS 的实现 Source 目录下新建 Modules 目录 JDCall.h #ifndef JDCall_h #define JDCall_h #import <WeexSDK/WXModuleProtocol.h> @interface JDCallModule : NSObject <WXModuleProtocol> - (void)call:(NSString *)tel; @end #endif /* JDCall_h */ JDCall.m #i ...

阅读全文...