美文网首页weexiOS分享的demo网页的东西
Weex入门教学 (iOS端读取js ,拦截点击)

Weex入门教学 (iOS端读取js ,拦截点击)

作者: 找不到好的ID | 来源:发表于2017-02-14 13:59 被阅读1402次

前端同事看了weex相关文档,写了一个项目,写的时候用Android模拟器调试的,写完之后,想看iOS端的效果,一顿操作,weexpack platform add ios,然后weexpack run iOS,最后并不能跑起项目.同事把一堆.js文件传给我,让我跑起来给他看看...


说下步骤吧,网上关于iOS那部分的weex教程有很多,但是weex一直在更新,版本都不一样,建议直接去github: https://github.com/alibaba/weex/ 先下载个demo看看.

1.打开下载的demo. 用终端先cd到weex-dev/ios/playground,然后pod install.



2.打开,WeexDemo.xcworkspace,找到DemoDefine.h.其中 HOME_URL 是在debug环境下读取的.js路径, BUNDLE_URL是release环境下读取的.js路径.



3.把自己的.js文件夹拖入工程.记得选creat folder references,因为参照weex文档写的js,里面很多push操作都是找某个路径下的js,如果不选第二个,可能会导致路径找不到.

4.例如我把dist文件夹拖入工程,由于我的初始页面需要是登录页面,所以修改文件路径.



5.cmd+r,运行模拟器,如图所示:

这样读取js文件操作基本ok了.

关于拦截操作:
1.比如点击登录按钮,会触发事件,我们找到login.js,查看里面的内容找到登录相关的事件,其中jumpUrl是点击所执行的方法,找到jumpUrl这个方法,
其实跟OC里面的 self.navigationController pushViewController:<#(nonnull UIViewController *)#> animated:<#(BOOL)#>是一个方法.只是把js代码通过jsbridge调用原生的一些api.



2.既然是通过jsbridge去执行点击操作,我们查找项目里面有关jsbridge的文件,找到WXBridgeContext.m这个文件,



再找到- (void)executeJsMethod:(WXCallJSMethod *)method这个方法,


B3E5945F-117D-4BCA-ABB4-72274B715707.png
接着打一个断点,再点击登录按钮,po method,如下面所示,control=12,事件为:click,按钮位置以及什么时候点击的时间戳也po出来了.

3.在此方法里面就可以写自己想要拦截的操作了,例如通过control=12,return出方法,把自己想要写的操作写进去就ok了.

相关文章

网友评论

  • 炎成:这位大佬,有详细代码吗,刚接手新项目,集成weex,很多地方不懂啊
    找不到好的ID:官方有demo
  • 7101f0f4eea2::joy: 楼主 有没有源码啊
    找不到好的ID:官方有demo
  • 79c1d351ed08:卧槽,你怎么这么棒。
  • Fintecher:weex init
    cnpm install
    weex src/foo.vue 报错,我用的最新版本。

    /usr/local/lib/node_modules/weex-toolkit/node_modules/._xtoolkit@0.2.7@xtoolkit/src/package/NpmPackage.js:50
    throw new Error('resolve path error:'+this.path)
    ^

    Error: resolve path error:/usr/local/lib/node_modules/weex-toolkit/node_modules/._weex-builder
    at NpmPackage.resolve (/usr/local/lib/node_modules/weex-toolkit/node_modules/._xtoolkit@0.2.7@xtoolkit/src/package/NpmPackage.js:50:23)
    at Command.run (/usr/local/lib/node_modules/weex-toolkit/node_modules/._xtoolkit@0.2.7@xtoolkit/src/Command.js:43:13)
    at XToolkit._done (/usr/local/lib/node_modules/weex-toolkit/node_modules/._xtoolkit@0.2.7@xtoolkit/src/xtoolkit.js:141:33)
    at process.nextTick (/usr/local/lib/node_modules/weex-toolkit/node_modules/._xtoolkit@0.2.7@xtoolkit/src/xtoolkit.js:90:22)
    at _combinedTickCallback (internal/process/next_tick.js:73:7)
    at process._tickCallback (internal/process/next_tick.js:104:9)
    at Module.runMain (module.js:606:11)
    at run (bootstrap_node.js:393:7)
    at startup (bootstrap_node.js:150:9)
    at bootstrap_node.js:508:3
  • 江山此夜寒:楼主,苹果官方禁用weex JSpath,weex现在不能用么
    找不到好的ID:@江山此夜寒 并不是,你可以下邮件,邮件里说明了问题.
    江山此夜寒:@找不到好的ID 可是我版本发布到APPStore时候,在“活动”里面的"所有版本"里开始有版本2.0.0,正在检查,过了几分钟,这个版本不见了,我不能提交审核是weex的原因吗
    找不到好的ID:@江山此夜寒 只是警告了热修复,weex和rn还是一样的用.

本文标题: Weex入门教学 (iOS端读取js ,拦截点击)

本文链接:https://www.haomeiwen.com/subject/ivhmittx.html