weex初尝试

年前在网上搜weex时网上资料还是一片空白,只在GitHub上搜到了一点代码

现在再搜的时候网上的代码已经是一大片了,虽然是js的东西,在Android中使用方法如下(GitHub上的例子):

在gradle文件中添加依赖:

compile 'com.alibaba:fastjson:1.1.45'
compile 'com.taobao.android:weex_sdk:0.10.0@aar'
compile 'com.android.support:design:23.4.0'


网络访问js方法:

  mContainer = (FrameLayout) findViewById(R.id.container);

    mWXSDKInstance = new WXSDKInstance(this);
    mWXSDKInstance.registerRenderListener(this);
    /**
     * pageName:自定义,一个标示符号。
     * url:远程bundle JS的下载地址
     * options:初始化时传入WEEX的参数,比如 bundle JS地址
     * flag:渲染策略。WXRenderStrategy.APPEND_ASYNC:异步策略先返回外层View,其他View渲染完成后调用onRenderSuccess。WXRenderStrategy.APPEND_ONCE 所有控件渲染完后后一次性返回。
     */
    Map<String, Object> options = new HashMap<>();
    options.put(WXSDKInstance.BUNDLE_URL, TEST_URL);
    mWXSDKInstance.renderByUrl("WXSample",TEST_URL,options,null,WXRenderStrategy.APPEND_ONCE);

本地请求的方法:

assets文件夹中放入hello.wx

    mWXSDKInstance = new WXSDKInstance(this);
    mWXSDKInstance.registerRenderListener(this);
    /**
     * WXSample 可以替换成自定义的字符串,针对埋点有效。
     * template 是.we transform 后的 js文件。
     * option 可以为空,或者通过option传入 js需要的参数。例如bundle js的地址等。
     * jsonInitData 可以为空。
     */
    Map<String,Object> options=new HashMap<>();
    options.put(WXSDKInstance.BUNDLE_URL,"file://build/hello.js");
    mWXSDKInstance.render("WXSample", WXFileUtils.loadAsset("build/hello.js", this), null, null, WXRenderStrategy.APPEND_ASYNC);
fragment中使用weex

 @Override
  public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    View view = View.inflate(getActivity(), R.layout.fragment_weex, null);
    mContainer = (FrameLayout) view.findViewById(R.id.fragment_container);

    mBundleUrl = getArguments() != null ? getArguments().getString(WXSDKInstance.BUNDLE_URL) : null;
    mWXSDKInstance = new WXSDKInstance(getActivity());
    mWXSDKInstance.registerRenderListener(this);
    HashMap<String, Object> options = new HashMap<>();
    options.put(WXSDKInstance.BUNDLE_URL, mBundleUrl);
    mWXSDKInstance.renderByUrl("Weex Fragment Sample", mBundleUrl,options, null, WXRenderStrategy.APPEND_ASYNC);
  }
application中代码:

/**
 * 注意要在Manifest中启用
 * 参考manifest,否则会抛出ExceptionInInitializerError
 * 要实现ImageAdapter 否则图片不能下载
 * gradle 中一定要添加一些依赖,否则初始化会失败。
 * compile 'com.android.support:recyclerview-v7:23.1.1'
 * compile 'com.android.support:support-v4:23.1.1'
 * compile 'com.android.support:appcompat-v7:23.1.1'
 * compile 'com.alibaba:fastjson:1.1.45'
 */
public class WXApplication extends Application {

  @Override
  public void onCreate() {
    super.onCreate();
    InitConfig config = new InitConfig.Builder().setImgAdapter(new ImageAdapter()).build();
    WXSDKEngine.initialize(this, config);
    try {
      WXSDKEngine.registerModule("poneInfo", PhoneInfoModule.class);
      WXSDKEngine.registerComponent("rich", RichText.class, false);
    } catch (WXException e) {
      e.printStackTrace();
    }
  }

初次了解尚未深究




  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值