Trust
Trust
  • 发布:2018-10-07 12:01
  • 更新:2024-10-25 21:09
  • 阅读:161509

uni-app 中使用微信小程序第三方 SDK 及资源汇总

分类:uni-app

本文以高德微信小程序 SDK 为例,简述如何在 uni-app 中利用微信小程序第三方 SDK,实现 App 端和微信小程序的代码通用。

获取SDK

首先在高德开放平台,注册账号并且申请相关的 key 等信息;
然后下载它的微信小程序版 SDK:微信小程序 SDK
然后填写app包名,申请原生sdk的appkey信息,但不需要下载原生sdk。注意:App侧在Android中使用定位,或者Android、iOS使用地图,仍然需要同时向高德申请原生sdk的key信息,填写在manifest的app sdk配置中。

新建一个 uni-app 项目,新建一个 common 目录,然后将前面下载得到的 amap-wx.js 的文件复制进去。

Tip:这个 common 目录只是举例,并非强制约定。但是,不要放在 static 目录下。

引入SDK

新建的 uni-app 默认会有一个 index 页,在 index.vue 中,引入高德小程序 SDK。

import amap from '../../common/amap-wx.js';  
export default {  
}

在 onLoad 中初始化一个高德小程序 SDK 的实例对象。

import amap from '../../common/amap-wx.js';  
export default {  
    data() {  
        return {  
            amapPlugin: null,  
            key: '这里填写高德开放平台上申请的key'  
        }  
    },  
    onLoad() {  
        this.amapPlugin = new amap.AMapWX({  
            key: this.key  
        });  
    }  
}

使用API

利用高德小程序 SDK,获取当前位置地址信息,以及当前位置的天气情况。

import amap from '../../common/amap-wx.js';  
export default {  
    data() {  
        return {  
            amapPlugin: null,  
            key: '高德key',  
            addressName: '',  
            weather: {  
                hasData: false,  
                data: []  
            }  
        }  
    },  
    onLoad() {  
        this.amapPlugin = new amap.AMapWX({  
            key: this.key  
        });  
    },  
    methods: {  
        getRegeo() {  
            uni.showLoading({  
                title: '获取信息中'  
            });  
            this.amapPlugin.getRegeo({  
                success: (data) => {  
                    console.log(data)  
                    this.addressName = data[0].name;  
                    uni.hideLoading();  
                }  
            });  
        }  
    }  
}

其它 SDK

高德小程序 SDK 类似辅助工具库,使用时在需要的页面中引入即可。

还有一种 SDK 比如阿拉丁、诸葛IO等统计类的 SDK 需要全局引入。小程序是在 app.js 中 引入。在 uni-app 中,则是在 main.js 中引入。

示例

附件中有完整的示例,下载后解压拖进 HBuilderX,填写申请的高德 key 后即可运行体验。

如果大家在使用微信小程序的第三方 SDK 时遇到问题,请在社区单独发帖描述清楚问题,并一定附上项目源码,方便我们测试,感谢配合。

更多 SDK 资源

通用 SDK

App 端和微信小程序均可使用小程序版 SDK

微信小程序

仅适用于微信小程序

这些 SDK 因为当前 uni-app 还未统一app和小程序的直播api而暂时只能在小程序中使用。

补充完善

以上列出来的只是一部分资源信息,还有一些其它的 SDK 可能没有涉及到,欢迎大家继续补充相关信息。

再次强调,因为uni-app的app端其实是一个强化版的小程序引擎,所以支持小程序sdk在app端使用。但这些sdk在h5端、支付宝百度等小程序平台无法使用。

32 关注 分享
9***@qq.com 3***@qq.com ilijiayin 氢气球 b***@foxmail.com w***@163.com 言会咸 LuxSun 中旭信息 呵呵打 1***@qq.com 90后菜鸟 9***@qq.com 没得好名字 s***@qq.com 9***@qq.com END丶YunFeng 1***@qq.com 思想1113 1***@qq.com [已删除] 昨夜悟空 z***@gmail.com 来自007的凝视 奋斗的小乌龟 link_007 刘先生啊 sonicsunsky 2***@qq.com 湛泸煮酒 1***@qq.com HRK_01

要回复文章请先登录注册

zmm2113V

zmm2113V

qqmap-wx-jssdk怎么使用
2024-10-25 21:09
s***@qq.com

s***@qq.com

TypeError: t.fail is not a function?????

manifest.json中的mp-weixin"下面增加即可

"permission": {
"scope.userLocation": {
"desc": "你的位置将用于小程序接口的效果展示"
}
},
"requiredPrivateInfos": ["getLocation"]
2024-08-14 16:53
1***@qq.com

1***@qq.com

回复 苏小十 :
谢谢大佬,终于搞定了
2024-07-31 15:24
5***@qq.com

5***@qq.com

您好,这个高德sdk一直是免费的吗?还是只有一段试用期限呢?
2024-06-24 12:43
守护

守护

回复 2***@qq.com :
我的是TypeError: t.fail is not a function,怎么解决啊
2024-06-07 09:14
守护

守护

回复 2***@qq.com :
TypeError: t.fail is not a function
at Function.fail (amap-wx.130.js? [sm]:1)
at :52602/appservice/<api getLocation fail callback function>
at WAServiceMainContext.js?t=wechat&s=1717722624265&v=3.4.2:1
at Nc (WAServiceMainContext.js?t=wechat&s=1717722624265&v=3.4.2:1)
at Oc (WAServiceMainContext.js?t=wechat&s=1717722624265&v=3.4.2:1)
at Function.<anonymous> (WAServiceMainContext.js?t=wechat&s=1717722624265&v=3.4.2:1)
at :52602/appservice/<setTimeout callback function>
at WAServiceMainContext.js?t=wechat&s=1717722624265&v=3.4.2:1
at WAServiceMainContext.js?t=wechat&s=1717722624265&v=3.4.2:1(env: Windows,mp,1.06.2402040; lib: 3.4.2)
2024-06-07 09:14
2***@qq.com

2***@qq.com

a.fail is not a function 问题,我已经解决了,看我的博客https://blog.csdn.net/qq_63943166/article/details/139151551?spm=1001.2014.3001.5502
2024-05-24 21:04
2***@qq.com

2***@qq.com

回复 苏小十 :
已解决,看我的博客https://blog.csdn.net/qq_63943166/article/details/139151551?spm=1001.2014.3001.5502
2024-05-24 21:04
9***@qq.com

9***@qq.com

哈哈哈
2024-04-18 12:04
1***@qq.com

1***@qq.com

a.fail is not a function。可以试下这样。我复制这个大佬的this.amapPlugin.getRegeo({

success: (data) => {

console.log(data)

},

fail(e){

console.log(e)

}

});

a.fail是因为你没传这个fail的回调函数。然后出现这个错误 getLocation:fail fail:require permission desc。解决方法在https://blog.csdn.net/weixin_46549023/article/details/125846372
2024-04-17 21:40