2019-01-11

2019-01-11  本文已影响0人  肚子大脖子细

Weex入门到放弃


1和3这三种方式的跳转都需要获取待跳转页面的bundlejs的绝对地址。
2需要对做拦截 (iOS用Scheme、[[UIApplication sharedApplication] openURL:weburl];吧,Android用intent-filter吧。)


  1. Native -> Weex
NSURL *URL = [self testURL: [self.url absoluteString]];
NSString *randomURL = [NSString stringWithFormat:@"%@%@random=%d",URL.absoluteString,URL.query?@"&":@"?",arc4random()];
[_instance renderWithURL:[NSURL URLWithString:randomURL] options:@{@"bundleUrl":URL.absoluteString} data:nil];
- (void)renderWithURL:(NSURL *)url options:(NSDictionary *)options data:(id)data
{
    if (!url) {
        WXLogError(@"Url must be passed if you use renderWithURL");
        return;
    }
    
    self.needValidate = [[WXHandlerFactory handlerForProtocol:@protocol(WXValidateProtocol)] needValidate:url];
    
    WXResourceRequest *request = [WXResourceRequest requestWithURL:url resourceType:WXResourceTypeMainBundle referrer:@"" cachePolicy:NSURLRequestUseProtocolCachePolicy];
    [self _renderWithRequest:request options:options data:data];
    [WXTracingManager startTracingWithInstanceId:self.instanceId ref:nil className:nil name:WXTNetworkHanding phase:WXTracingBegin functionName:@"renderWithURL" options:@{@"bundleUrl":url?[url absoluteString]:@"",@"threadName":WXTMainThread}];
}
  1. Weex -> Native
  2. Weex -> Weex
     navigator.push({
        'url': getEntryUrl('detail'),
        'animated': 'true'
      })
export function getEntryUrl (name) {
    if (weex.config.env.platform === 'Web') {
      return './' + name + '.html'
    } else {
      let arr = weex.config.bundleUrl.split('/')
      arr.pop()
      arr.push(name + '.js')
      return arr.join('/')
    }
  }

1可以用vue-router实现挂载的reload
2暂时没有接触


  1. Weex -> Weex
this.$router.push('./detailpage')
  1. Native -> Weex

方法1: 通过bundlejs绝对地址后面拼接参数
方法2: 通过broadcastChannel


image.png

方法3: 通过storage


  1. 正向传值
  2. 反向传值
image.png

scroller 不能嵌套,也意味着 recycle-list, list 都无法嵌套。
商业项目想要一人想要完成开发,需要掌握三端的技术。

同一份代码在手机和网页中由于平台差异效果可能不一样。如果手机中遇到崩溃. 但是错误会直接在界面上写个render error:-2013就停止执行了.完全看不到错误提示.在网页中又好的。

上一篇下一篇

猜你喜欢

热点阅读