向大海
向大海
  • 发布:2017-01-07 12:33
  • 更新:2017-01-07 13:29
  • 阅读:2425

【报Bug】android使用appendJsFile预加载js文件,远程页面中无法使用预加载js中的函数

分类:HTML5+

最新的基座7.6.5和在线打包生成的android安装包中使用webview的appendJsFile预加载的js文件中定义的函数在网络html中无法调用,以前的android版本和现在ios都可以
客户端html中

var sub = plus.webview.create(pageUrl, pageId, subpage_style,{baseUrl:baseUrl});  
                    sub.appendJsFile('/appjs/app.js');//添加Webview窗口预加载js文件  
                    sub.appendJsFile('/appjs/url.js');  
                    sub.appendJsFile('/appjs/object.js');  
                    sub.appendJsFile('/appjs/JsInterface.js');  
                    self.append(sub);

客户端 JsInterface.js

var baseUrl =  plus.webview.currentWebview().baseUrl;//本地文件路径  
var openWidowStyle = {  
        //autoShow:true,//页面loaded事件发生后自动显示,默认为true  
        aniShow: 'pop-in' //页面显示动画,默认为”slide-in-right“;  
            ,  
        duration: 200 //页面动画持续时间,Android平台默认100毫秒,iOS平台默认200毫秒;  
    }  
var JsInterface = {  
    //打开支付  
    openPay: function(payMoney,shopInfo) {  
        var pageUrl = baseUrl+'pay.html'; //支付页面url  
        var pageId = 'pay'; //页面id  
        var aniShow = openWidowStyle.aniShow;  
        //未登录  
        if(!isLogin()){  
            pageUrl = baseUrl+ loginPage;//登录页地址  
            pageId = 'login';  
            aniShow = 'slide-in-bottom';  
        }  
        var extras = {  
                payMoney: payMoney,  
                shopInfo: shopInfo  
            }  
        plus.webview.open( pageUrl, pageId, {}, aniShow, openWidowStyle.duration, '',extras);  
        return ;  
    }  
    //,  
};

客户端打开的服务器页面文件中

JsInterface.openPay(2380,'11111');

hbuilder控制台输出日志

 Uncaught ReferenceError: JsInterface is not defined
2017-01-07 12:33 负责人:无 分享
已邀请:
Trust

Trust - 少说废话

调整为_www/js/test.js这种路径。

  • 向大海 (作者)

    调整过试了不行

    sub.appendJsFile('_www/appjs/app.js');//添加Webview窗口预加载js文件

    sub.appendJsFile('_www/appjs/url.js');

    sub.appendJsFile('_www/appjs/object.js');

    sub.appendJsFile('_www/appjs/JsInterface.js');

    还是报错

    Uncaught ReferenceError: JsInterface is not defined at

    2017-01-07 12:49

Trust

Trust - 少说废话

临时解决方案:
插入的js中,全局变量声明的时候直接window.variable = ‘’;

  • 向大海 (作者)

    谢谢,可以了

    2017-01-07 13:57

  • 8***@qq.com

    这个全局变量具体怎么用啊??

    2018-01-30 11:15

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