在开发者工具里面开发插件,需要一个miniprogram来对插件进行演示
在开发者工具里面我的app.json文件是这样的
{ "pages" : [ "pages/index/index" , "pages/help/index" , "pages/demo/index" ], "window" : { "navigationBarTitleText" : "日历组件演示" }, "tabBar" : { "color" : "#dbdbdb" , "selectedColor" : "#6665ff" , "backgroundColor" : "#ffffff" , "list" : [ { "pagePath" : "pages/index/index" , "text" : "功能演示" , "iconPath" : "/resource/index2.png" , "selectedIconPath" : "/resource/index.png" }, { "pagePath" : "pages/help/index" , "text" : "接口文档" , "iconPath" : "/resource/interface2.png" , "selectedIconPath" : "/resource/interface.png" }, { "pagePath" : "pages/demo/index" , "text" : "Demo" , "iconPath" : "/resource/layers2.png" , "selectedIconPath" : "/resource/layers.png" } ] }, "plugins" : { "calendar" : { "version" : "dev" , "provider" : "这里是小程序APPID,我在这里隐藏掉" } } } |
在左侧模拟器是可以正常显示的,显示如下图
一切正常,没有任何异常输出。
但是点击预览按钮,手机扫码打开插件开发助手,却是一片空白,打开调试,看到输出信息为页面没注册
各个Tab标签页都不行。重启微信,删除插件助手也无法解决。
我不知道这种错误是否会影响到代码上传后的审核工作
烦请相关人员排查,谢谢
不应该会有类似的问题才对,我按照你之前的目录结构来尝试require也没遇到问题。
对两个问题的解答:
目前没有强制约束,不过建议保留。
是的,开发模式下只能是dev。
你好,官方大哥,我学写个插件,也在预览的时候遇见了手机端白屏的情况,手机端报错为:Please do not call Page constructor in files that not listed in "pages" section of app.json or plugin.json,目录如下:
,(在开发工具里能正常显示,在手机预览中白屏),该声明的都声明了啊,pages里也没啥啊,急切盼望得到回复,谢谢
是不是有非页面js文件中调用了 Page() ?
哪个文件是你所说的非页面js?如果是非页面js我调用page()也没用,在模拟器上应该也报错的啊? 我能不能把代码直接私发给你啊哈哈哈哈。。。。真的是蒙圈
原因不是很明晰。不过可以确定是有 Page() 调用才有可能报这个错。能否列举一下你的代码中所有调用了 Page 构造器的地方呢?
难道是我的data.js的那个that不对啊?我把需要调用data.js的页面的this传过去了,就上面那个箭头指着的地方,这是所有的js了(除了list(它是页面js啊)和template(里面是空的)的页面配套js),麻烦你费脑子了,谢谢
做了一个相似的例子,但是并没有复现出你的问题。可否提供一个代码片段供我们复现问题呢?
代码片段的用法:https://developers.weixin.qq.com/miniprogram/dev/devtools/minicode.html
你好,这样会导致审核无法通过的。
这个问题初步判断是插件内有 require 语句,但 require 的路径未找到导致的。麻烦检查一下相关代码。如果还有疑问,麻烦提供以下相关的细节。谢谢!
你好,问题已解决,我把lunar.js文件移入和claendar.js同个目录里面,直接在calendar.js文件中require("./lunar.js");即错误消除。
另有两个问题:
1、如果我的插件不对外提供js接口,那么插件配置文件中的类似"main":"index.js"配置项是否可以删除?还是说必须保留,但index.js内容为
module.exports = {},留空即可?
2、插件开发时,app.json文件中的plugins配置项,version是不是必须为dev?而不能是类似1.0.0这样的写法?谢谢!
插件的主文件是calendar.js
引用了一个农历算法文件叫lunar.js
目录结构是:
plugin
components
calendar
calendar.js
utils
lunar.js
那么在calendar.js中引用lunar.js采取../../utils/lunar.js 这样写没毛病吧?
如果有引用错误,那为什么调试工具又可以正常显示呢?反而到了线上预览就不行?