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是一样的。
如果有官方人员或者遇到和我一样问题的看到,麻烦给解答一下吧,谢谢
3 个回复
4***@qq.com
我也碰到了这个问题 你解决了么?
刘登辉
打开build.gradle文件
dependencies{
// 新增
implementation 'com.tencent.mm.opensdk:wechat-sdk-android-with-mta:5.1.4'
}
s***@startsmart.com.cn
代码是这个:
package 包名.wxapi;
import io.dcloud.feature.oauth.weixin.AbsWXCallbackActivity;
}
不能做任何注释,是否按照离线打包增加了aar和修改配置。
oauth-weixin-release.aar
share-weixin-release.aar 分享的