年前在网上搜weex时网上资料还是一片空白,只在GitHub上搜到了一点代码
现在再搜的时候网上的代码已经是一大片了,虽然是js的东西,在Android中使用方法如下(GitHub上的例子):
在gradle文件中添加依赖:
网络访问js方法: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'
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
fragment中使用weexmWXSDKInstance = 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);
application中代码:@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); }
/** * 注意要在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(); } }
初次了解尚未深究