shareHandle(){
let msg = {
type: 'web',
href: 'https://www.baidu.com',
content: '我正在使用HBuilderX开发uni-app,赶紧跟我一起来体验!' // 分享消息的文字内容----微信必填
};
this.shareWeb('sinaweibo',msg)
}
shareWeb(provider, msg) {
// #ifdef APP-PLUS
const result = {}
return new Promise((resolve, reject) => {
plus.share.getServices(
function(services) {
let shares = ''
services.forEach((element) => {
if (element.id == provider) {
shares = element
}
})
if (provider != 'sinaweibo') {
// 新浪微博没装客户端时可以直接调用网页来分享,所以新浪微博不须要去判断有没有客户端
if (!shares.nativeClient) {
// 如果不存在对应的分享客户端,引导用户安装客户端
result.success = false
result.msg = '分享失败:您还未安装客户端!'
resolve(result)
return
}
}
if (!shares.authenticated) {
// 如果还未认证(QQ和微博),先去认证
shares.authorize(
function() {
shares.send(
msg,
function() {
result.success = true
result.msg = '分享成功!'
resolve(result)
},
function(error) {
result.success = false
result.msg = '分享失败:' + error.message.split('http')[0]
resolve(result)
}
)
},
function(error) {
result.success = false
result.msg = '获取授权失败:' + error.message.split('http')[0]
resolve(result)
}
)
} else {
// 如果已经认证(微信),可以直接调用分享,
uni.showModal({
title: '即将进行分享',
content: '即将进行分享',
success: function (res) {
if (res.confirm) {
shares.send(
msg,
function() {
result.success = true
result.msg = ''
resolve(result)
},
function(error) {
result.success = false
result.msg = '分享失败:' + error.message.split('http')[0]
resolve(result)
}
)
} else if (res.cancel) {
console.log('用户点击取消');
}
}
});
}
},
function(error) {
result.success = false
result.msg = '获取授权失败:' + error.message.split('http')[0]
resolve(result)
}
)
})
// #endif
}
- 发布:2022-01-25 12:06
- 更新:2022-03-07 18:17
- 阅读:642
产品分类: uniapp/App
PC开发环境操作系统: Windows
PC开发环境操作系统版本号: Windows 10
HBuilderX类型: 正式
HBuilderX版本号: 3.3.9
手机系统: iOS
手机系统版本号: iOS 14
手机厂商: 苹果
手机机型: iPhone6s,iPhoneXR
页面类型: vue
vue版本: vue2
打包方式: 云端
项目创建方式: HBuilderX
App下载地址或H5⽹址: https://apps.apple.com/cn/app/%E8%8F%A0%E8%90%9D%E6%B4%BE/id1599755787
示例代码:
操作步骤:
1.安装微博app
2.打开开发app,点击微博分享。成功唤起微博app
3.登陆微博app
4在开发app中再次点击微博分享后无反应,无法调用HTML5+的ShareService.send()方法(ShareService.send()的成功和失败回调函数皆不运行)且没有唤起微博app
1.安装微博app
2.打开开发app,点击微博分享。成功唤起微博app
3.登陆微博app
4在开发app中再次点击微博分享后无反应,无法调用HTML5+的ShareService.send()方法(ShareService.send()的成功和失败回调函数皆不运行)且没有唤起微博app
预期结果:
登录微博APP后在开发APP中点击微博分享能成功唤起微博APP
登录微博APP后在开发APP中点击微博分享能成功唤起微博APP
实际结果:
登录微博APP后在开发APP中点击微博分享无法唤起微博APP
登录微博APP后在开发APP中点击微博分享无法唤起微博APP
bug描述:
IOS分享至微博无法唤起微博,而微信及QQ都可以唤起
在手机安装微博APP(微博APP已登录)的情况下,在IOS中调用HTML5 的ShareService.send()方法无法唤起微博APP(使用uni.share()也不行)
manifest.json=>APP模块配置=>分享=>新浪微博分享中的APPkey、redirect_uri、IOS通用链接均已配置(与微博开房平台中对应信息完全一致 )
x***@hotmail.com (作者)
UNI7369C00
实际上是点上的,如果在代码shares.send()前一行中插入uni.showModal()的话是可以成功弹框
2022-01-25 14:26
天生DR
回复 x***@hotmail.com: 是个Bug 下个版本修复
2022-01-25 18:55