weex初尝试

来源:互联网 发布:win10 数据恢复 编辑:程序博客网 时间:2024/06/05 22:49

年前在网上搜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 0
原创粉丝点击