Weex代码

var navigator = weex.requireModule('navigator')navigator.push({    url:‘file://assets/dist/page/test.js‘    animated: "true"}, event => {})

Url:就是你的android目录的想要加载JS的路径。

Android相关代码

  • 创建一个Activity,如下图所示位置以及代码

package com.weex.app.util;import android.os.Bundle;import android.support.v7.app.AppCompatActivity;import android.view.View;import android.view.ViewGroup;import android.widget.FrameLayout;import com.taobao.weex.IWXRenderListener;import com.taobao.weex.WXSDKInstance;import com.taobao.weex.common.WXRenderStrategy;import com.taobao.weex.devtools.common.LogUtil;import com.weex.app.R;import java.util.HashMap;import java.util.Map;/** * Created by lee on 29/03/2018. */public class Network extends AppCompatActivity implements IWXRenderListener {    private WXSDKInstance mWXSDKInstance;    private FrameLayout mContainer;    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_network);        mContainer = (FrameLayout) findViewById(R.id.container);        mWXSDKInstance = new WXSDKInstance(this);        mWXSDKInstance.registerRenderListener(this);        String RenderPageUrl = "";        if (getIntent().getData() != null) {            String navUrl = getIntent().getData().toString();            if (null != navUrl) {                LogUtil.e(navUrl);                RenderPageUrl = navUrl;            } else {                LogUtil.e("a is null");            }        } else {            LogUtil.e("get data is null");        }        Map<String, Object> options = new HashMap<>();        options.put(WXSDKInstance.BUNDLE_URL, RenderPageUrl);        mWXSDKInstance.renderByUrl("WXSample", RenderPageUrl, options, null, WXRenderStrategy.APPEND_ONCE);    }    @Override    protected void onStart() {        super.onStart();        if (mWXSDKInstance != null) {            mWXSDKInstance.onActivityStart();        }    }    @Override    protected void onResume() {        super.onResume();        if (mWXSDKInstance != null) {            mWXSDKInstance.onActivityResume();        }    }    @Override    protected void onPause() {        super.onPause();        if (mWXSDKInstance != null) {            mWXSDKInstance.onActivityPause();        }    }    @Override    protected void onStop() {        super.onStop();        if (mWXSDKInstance != null) {            mWXSDKInstance.onActivityStop();        }    }    @Override    protected void onDestroy() {        super.onDestroy();        if (mWXSDKInstance != null) {            mWXSDKInstance.onActivityDestroy();        }    }    @Override    public void onViewCreated(WXSDKInstance instance, View view) {        if (view.getParent() != null) {            ((ViewGroup) view.getParent()).removeView(view);        }        mContainer.addView(view);    }    @Override    public void onRenderSuccess(WXSDKInstance instance, int width, int height) {    }    @Override    public void onRefreshSuccess(WXSDKInstance instance, int width, int height) {    }    @Override    public void onException(WXSDKInstance instance, String errCode, String msg) {    }}
  • 创建Activity布局文件
<?xml version="1.0" encoding="utf-8"?><RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"    xmlns:tools="http://schemas.android.com/tools"    android:id="@+id/activity_network"    android:layout_width="match_parent"    android:layout_height="match_parent">    <FrameLayout        android:id="@+id/container"        android:layout_width="match_parent"        android:layout_height="match_parent">FrameLayout>RelativeLayout>
  • 修改manifest.xml-添加拦截器
<?xml version="1.0" encoding="utf-8"?><manifest xmlns:android="http://schemas.android.com/apk/res/android"          xmlns:tools="http://schemas.android.com/tools"          package="com.weex.app">    <uses-permission android:name="android.permission.INTERNET"/>    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>    <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/>    <uses-permission android:name="android.permission.CAMERA"/>    <uses-permission android:name="com.android.launcher.permission.INSTALL_SHORTCUT"/>    <uses-feature android:name="android.hardware.camera"/>    <uses-feature android:name="android.hardware.camera.autofocus"/>    <application        android:name="com.weex.app.WXApplication"        android:allowBackup="false"        android:icon="@mipmap/ic_launcher"        android:label="@string/app_name"        android:supportsRtl="true"        android:theme="@style/AppTheme"        tools:overrideLibrary="com.taobao.android.dexposed"        tools:replace="android:allowBackup">        <activity            android:name="com.weex.app.SplashActivity"            android:configChanges="orientation|keyboardHidden|screenSize"            android:label="@string/app_name"            android:screenOrientation="portrait"            android:theme="@style/FullscreenTheme">            <intent-filter>                <action android:name="android.intent.action.MAIN"/>                <category android:name="android.intent.category.LAUNCHER"/>            intent-filter>        activity>        <activity            android:name="com.weex.app.WXPageActivity"            android:label="@string/app_name"            android:screenOrientation="portrait">        activity>        <activity android:name=".util.Network">        <intent-filter>            <action android:name="com.taobao.android.intent.action.WEEX" />            <category android:name="android.intent.category.DEFAULT" />            <category android:name="com.taobao.android.intent.category.WEEX" />            <action android:name="android.intent.action.VIEW" />            <data android:scheme="http" />            <data android:scheme="https" />            <data android:scheme="file" />            <data android:scheme="network" />        intent-filter>    activity>        <activity            android:name="com.journeyapps.barcodescanner.CaptureActivity"            android:screenOrientation="portrait"            tools:replace="screenOrientation"/>    application>manifest>

介绍

原理就是创建一个新的Activity ,利用拦截器通过隐式跳转到Network Activity,然后调用Weex API 进行JS渲染。

更多相关文章

  1. 没有一行代码,「2020 新冠肺炎记忆」这个项目却登上了 GitHub 中
  2. Smalidea+IntelliJ IDEA/Android(安卓)Studio动态调试安卓app教
  3. android之menu相关
  4. Android窗口机制之由setContentView引发的Window,PhoneWindow,Deco
  5. WebView播放html5视频和全屏。
  6. Android(安卓)8.1 来电默认全屏显示 如何修改
  7. Android通用布局对象
  8. android第一天(小有成就,散分)
  9. Android(安卓)界面布局

随机推荐

  1. [转载]Android实现更换皮肤功能
  2. Android中绘制2D图形基础
  3. APK反编译软件以及方法
  4. android之规范命名
  5. 【Android面试知识点系列】Handler相关
  6. 第十二章:Android数据存储(下)
  7. Android原生方式实现夜间模式
  8. 2013.04.10——— android listview getv
  9. 腾讯微博java(android) sdk 数据更新相关
  10. Android高级UI_Path小试牛刀