app在线制作|app打包

注册
新帮助文档中心
帮助中心
帮助中心 > App制作使用

App制作使用

轻云使用

微信小程序

平台使用

第三方平台申请

资源本地化,实现混合开发App


App开发有三种模式:网站打包App,混合开发,原生App。随着手机速度提高现在混合开发与原生App几乎无差别。

网站打包App与混合开发速度主要差别在每次资源全部重新加载,缩小两种之间的加载速度。

本站提供了两种混合开发方式:轻混合,混合开发。


一、轻混合开发

什么轻混合:常用资源本地化,如影响加载速度的是JS/模板图片/CSS等。网页打开时不用重复请求并加载。

1.1、配置文件(replace.txt)

配置文件一定要在最外层目录下。

文件内容

{

“A”:“B”

}

A:网页内资源目录,不用填写网址,直接写目录。如网页内图片地址为http://www.baidu.com/img/in.png 写 /img/in.png。前面一定增加上'/'

B:压缩包内的文件路径

通配符:“.*”  

例:

{

"/img/ua.png":"img/ua.png",

"/css/style.css":"css/style.css",

"/index.js":"index.js",

"/app.*.js":"app.js",

}

App配置不用对应修改。

注:写的规则有多条相同的,执行最后一个。


1.2、文件存放

文件存放目录不限层级。

注:文件名与目录名不要用中文。


二、混合开发

资源全部本地化,实现混合开发。

2.1、配置文件(replace.txt)

文件内容

{

“A”:“B”

}

例:

{

"http://www.baidu.com":"index.html",

"http://www.sina.com":"test.html",

}

A:填写要更换的网址,

B:填写本地资源的页面

注:写的规则有多条相同的,执行最后一个。

没有菜单栏配置如下:

填写的网址与与配置文件对应,打开后自动打开index.html。


有原生菜单栏配置如下:

菜单1对应index.html,菜单2对应test.html




2.2、文件存放

文件存放目录不限层级。

注:文件名与目录名不要用中文。


三、离线文件上传

进入【基础设置】--【本地资源上传】上传zip包。


四、IOS版本post提交问题 

4.1、form

页面内form提交不用修改。


4.2、jquery

在需要POST提交的页面,在jquery加载后的位置加入以下代码:

var delay=1000;//发送请求的延时时间,可按需求修改

$.post1 = $.post;

$.post = function(a,b,c,d,e){

    var ua = navigator.userAgent;

    if(ua.indexOf('bsl') >=0 ){

        if(typeof(BSL.UNReplacementResource) == 'function')BSL.UNReplacementResource();

    }

    setTimeout(function(){$.post1(a,b,c,d,e);},delay);

    if(ua.indexOf('bsl') >=0 ){

        if(typeof(BSL.ReplacementResource) == 'function')setTimeout(function(){BSL.ReplacementResource();},delay+200);

    }

}


4.3、Axios

在需要POST提交的页面,在Axios.js引入后的位置加入以下代码:


 axios.interceptors.request.use(function (config) {

        var ua = navigator.userAgent;

        if(ua.indexOf('bsl') >=0 ){ 

            if(typeof(BSL.UNReplacementResource) == 'function')BSL.UNReplacementResource();

            alert('已关闭');

        }

        return config;

        }, function (error) {

            return Promise.reject(error);

    });

    axios.interceptors.response.use(function (response) {

        var ua = navigator.userAgent;

        if(ua.indexOf('bsl') >=0 ){

            alert('已开启');

            if(typeof(BSL.ReplacementResource) == 'function')BSL.ReplacementResource();

        }

        return response;

    }, function (error) {

        return Promise.reject(error);

    });