1***@qq.com
1***@qq.com
  • 发布:2020-01-13 14:34
  • 更新:2023-06-30 10:11
  • 阅读:1943

为什么plus.share.getServices在HBuilderX 打包能获取到服务对象 可是在android studio离线打包却得到空数组呢?

分类:ASK社区

vue项目,打包的项目文件先用hbuilder生成本地打包app资源,然后把生成好的文件放到as离线打包项目下的assets\apps\xxxx\www下面(xxxx是appid,你们文档里写的要几个地方的appid要统一的那个)
用hbuilder打包连手机可以获取到分享服务列表,用离线打包就获取的空数组,但是plus.runtime.appid可以获取到,就是xxxx。
代码:
this.$plusExtends() 这个是plusready的代码,放到了组件的mounted阶段,

this.$plusExtends(()=>{
console.log(plus.runtime.appid)
plus.share.getServices((s)=>{
this.shareServices = s;
console.log(this.shareServices);
for(var i in s){
if('weixin'==s[i].id){
this.sharewx=s[i];
}else if('sinaweibo'==s[i].id){
this.shareSina=s[i];
}
}
}, function(e){
alert("获取分享服务列表失败:"+e.message);
});
})
点击按钮发送分享
onShareWx(){
this.sharewx.send( {content:"分享测试",href:"http://www.dcloud.io/",extra:{scene:"WXSceneTimeline"}}, function(){
alert("分享成功!");
}, function(e){
alert("分享失败:"+e.message);
});
},

下面是as离线打包的配置信息

1,androidmanifest.xml中的配置
<!-- Share - 微信分享 -->
<uses-permission android:name="android.permission.MODIFY_AUDIO_SETTINGS" />
<application> //简写了这里的代码,只列出微信的配置,appid和secret有的,这里隐藏
<meta-data
android:name="WX_SECRET"
android:value="..." />
<meta-data
android:name="WX_APPID"
android:value="..." />
<activity
android:name=".wxapi.WXEntryActivity"
android:exported="true"
android:label="@string/app_name"
android:launchMode="singleTop">
<intent-filter>
<action android:name="android.intent.action.VIEW" />

            <category android:name="android.intent.category.DEFAULT" />  

            <data android:scheme="..." />  
        </intent-filter>  
    </activity>  

</application>

2,dcloud_properties.xml中配置,只留了微信的,其它的注释了
<feature name="Share" value="io.dcloud.share.ShareFeatureImpl">
<!-- <module name="Sina" value="io.dcloud.share.sina.SinaWeiboApiManager"/>-->
<!-- <module name="Tencent" value="io.dcloud.share.tencent.TencentWeiboApiManager"/>-->
<module name="Weixin" value="io.dcloud.share.mm.WeiXinApiManager"/>
<!-- <module name="QQ" value="io.dcloud.share.qq.QQApiManager"/>-->
</feature>

3,下载你们最新的sdk拿到的WXEntryActivity.java文件,内容如下
package io.dcloud.HBuilder.wxapi;

// import io.dcloud.feature.oauth.weixin.AbsWXCallbackActivity;

// public class WXEntryActivity extends AbsWXCallbackActivity{

// }

上面注释了三行代码是因为打包的时候提示找不到 AbsWXCallbackActivity,注释之后可以打包,这个影响获取分享服务列表吗?

4,androidmanifest.xml中的 <activity
android:name=".wxapi.WXEntryActivity" > .WXEntryActivity一直显示红色,这是什么意思,怎么解决? package和applicationId是一样的。

如果有官方人员或者遇到和我一样问题的看到,麻烦给解答一下吧,谢谢

2020-01-13 14:34 负责人:无 分享
已邀请:
4***@qq.com

4***@qq.com

我也碰到了这个问题 你解决了么?

l***@foxmail.com

l***@foxmail.com

打开build.gradle文件

dependencies{
// 新增
implementation 'com.tencent.mm.opensdk:wechat-sdk-android-with-mta:5.1.4'

}

s***@startsmart.com.cn

s***@startsmart.com.cn

代码是这个:
package 包名.wxapi;

import io.dcloud.feature.oauth.weixin.AbsWXCallbackActivity;

public class WXEntryActivity extends AbsWXCallbackActivity{  

}
不能做任何注释,是否按照离线打包增加了aar和修改配置。
oauth-weixin-release.aar
share-weixin-release.aar 分享的

要回复问题请先登录注册