七号座先生
七号座先生
  • 发布:2018-05-15 12:30
  • 更新:2018-05-15 14:36
  • 阅读:1169

app = SDK.startWebAp

分类:5+ SDK

Android 5+SDK集成,app = SDK.startWebApp(activity, appBasePath, args, new IWebviewStateListener() ,appBasePath,只能是assets下,不能是sd卡或者其他目录下吗

2018-05-15 12:30 负责人:无 分享
已邀请:
骁骑

骁骑

可以是SD卡路径,如果是SD卡路径则需要传完整路径

  • 七号座先生 (作者)

    感谢技术大大的回复。目前我取得也是这个路劲 ;/storage/emulated/0/android/data/com.freshjn.shop/files/Download/H5AFD71FB ;


    2018-05-15 13:04

  • 七号座先生 (作者)

    String SDCareBasePath = Environment.getExternalStorageDirectory().toString() + "/android/data/com.freshjn.shop/files/Download/H5AFD71FB";

    String mainfestPath = SDCareBasePath + "/www/manifest.json";

    try {

    File pFile = new File(mainfestPath);

    if (pFile.exists()) {

    appBasePath = SDCareBasePath;

    //程序能走进这一步,

    Log.d(TAG, "appBasePath:" + appBasePath);


                }  
    } catch (Exception e) {
    e.printStackTrace();
    }

    但就是加载资源文件还是之前达到包里面的文件,而且引用SD卡的资源目录。请问这个如何解决~


    2018-05-15 13:06

  • 七号座先生 (作者)

    先是看了一下这个帖子http://ask.dcloud.net.cn/article/947来实现的。 不过我这边下载WGT文件和解压是原生这边实现的,不是调用hbuilder的下载和重启。 目前发现的问题就是,资源文件能下载成功并解压成功。就是路径切换,重新指向最新的资源包,一直不成功~ 退出应用,再次打开,加载的资源文件还是打在包里面的资源文件,而不是下载解压到SD卡里面的资源文件。我把路径指向切换到本地SD卡的目录·· 重新启动APP,还是加载打包到APK的资源文件~ 请问该如何解决~


    2018-05-15 13:13

  • 骁骑

    如果解压你自己做了就要设置成你自己的解压文件所在的路径作为应用启动的路径


    2018-05-15 14:08

  • 七号座先生 (作者)

    回复 骁骑:是啊 ,就是设置了我解压的路径了。。但是 IApp app = SDK.startWebApp 的加载路径不生效啊


    2018-05-15 14:11

  • 骁骑

    集成的代码发出来我看下


    2018-05-15 14:14

  • 七号座先生 (作者)

    // 表示Webapp的路径在 file:///android_asset/apps/HelloH5

    String appBasePath = "/apps/H5AFD71FB";

    // 设置启动参数,可在页面中通过plus.runtime.arguments;方法获取到传入的参数

    String args = "{url:'http://m.freshjn.com/#/'}";

    String SDCareBasePath = Environment.getExternalStorageDirectory().toString() + "/android/data/com.freshjn.shop/files/Download/H5AFD71FB/";

    String mainfestPath = SDCareBasePath + "/www/manifest.json";

    try {

    File pFile = new File(mainfestPath);

    if (pFile.exists()) {

    appBasePath = SDCareBasePath;

    Log.d(TAG, "appBasePath:" + appBasePath);

    }

    } catch (Exception e) {

    e.printStackTrace();

    }

    Log.d(TAG, "SDCareBasePath:" + SDCareBasePath);

    // 启动启动独立应用的5+ Webapp


            app = SDK.startWebApp(activity, appBasePath, args, new IWebviewStateListener() {  
    // 设置Webview事件监听,可在监监听内获取WebIvew加载内容的进度
    @Override
    public Object onCallBack(int pType, Object pArgs) {
    switch (pType) {
    case IWebviewStateListener.ON_WEBVIEW_READY:
    // WebApp准备加载事件
    // 准备完毕之后添加webview到显示父View中,
    // 设置排版不显示状态,避免显示webview时html内容排版错乱问题
    View view = ((IWebview) pArgs).obtainApp().obtainWebAppRootView().obtainMainView();
    view.setVisibility(View.INVISIBLE);
    if (view.getParent() != null) {
    ((ViewGroup) view.getParent()).removeView(view);
    }
    rootView.addView(view, 0);
    break;
    case IWebviewStateListener.ON_PAGE_STARTED:
    // 首页面开始加载事件
    break;
    case IWebviewStateListener.ON_PROGRESS_CHANGED:
    // WebApp首页面加载进度变化事件
    break;
    case IWebviewStateListener.ON_PAGE_FINISHED:
    // WebApp首页面加载完成事件
    // 页面加载完毕,设置显示webview
    // 如果不需要显示spalsh页面将此行代码移动至onCloseSplash事件内

    break;
    }
    return null;
    }
    }, this);

    2018-05-15 14:18

  • 七号座先生 (作者)

    回复 骁骑:技术大大,我debug的时候截图了,上传了截图附件。


    2018-05-15 14:37

  • 骁骑

    你把assets/data/dcloud_control.xml文件里app节点的appid值改成别的别和你当前appid一样就行


    2018-05-15 15:53

七号座先生

七号座先生 (作者)

debug出来的资源加载路径··· 但,实际打开应用加载资源文件还是file:///android_asset/apps里面的资源包。

该问题目前已经被锁定, 无法添加新回复