ionic 微信分享值各类坑

去前段时间公司的app须要作微信分享,而后网上找的教程,在作的时候发现网上的教程各类坑,如今将作得过程分享出来javascript

在作功能以前你须要作几步预备工做,html

1.安装jdk,jre,并加入全局变量【这个网上仍是比较正确的,能够在网上查一下,可是win10须要特别注意,全局变量不能使用%JAVA_HOME%,须要使用绝对路径,当时安装的时候发现的,折腾了好长时间】java

2.发布release版本app【ionic build android -release】,生成签名android

生成证书和绑定签名的步骤,可参考http://jingyan.baidu.com/article/642c9d34eaeeda644a46f7f9.htmlgit

(1)生成证书github

keytool -genkey -v -keystore ****.keystore -alias ***.keystore -keyalg RSA -validity 36500【*表示你输入的名字,具体什么意思须要到网上查一下】web

(2)签名app微信

jarsigner -verbose -tsa https://timestamp.geotrust.com/tsa -keystore ****.keystore -signedjar ****.apk  platforms/android/build/outputs/apk/android-release-unsigned.apk ****.keystoreapp

【****.keystore】这个表示的是你上个步骤生成的证书名称,【****.apk】表示你签名过app的名称ionic

3.申请appid,网上只是说了须要申请具体步骤比较模糊,可参考http://www.cnblogs.com/Kummy/p/5200176.html

(1)将你签名过的app安装到手机【必须是release生成的而且是签名过的】

(2)下载app:https://res.wx.qq.com/open/zh_CN/htmledition/res/dev/download/sdk/Gen_Signature_Android221cbf.apk

该app主要是获取申请appid须要使用的,该app获取时须要程序包名【ionic根目录下config.xml <widget id="***.***.***"】填写进去能够直接获取

(3)到微信开放平台受权,须要包名和签名【上边获取的和config.xml文件里边的id】

4.安装插件 ionic plugin add cordova-plugin-wechat --variable wechatappid=微信appid   

github地址为https://github.com/xu-li/cordova-plugin-wechat

 appid为开放平太申请的id

5.打开你的项目下边微信分享插件,找到plugin.xml文件,能够看到这段文字

<!-- add this to your config.xml -->
<!-- <preference name="WECHATAPPID" value="YOUR_WECHAT_APP_ID_HERE" /> -->

按照格式将<preference name="WECHATAPPID" value="YOUR_WECHAT_APP_ID_HERE" />添加到confog.xml文件下

若是不添加的话会形成分享不能使用

分享代码以下

// 分享到朋友圈
    $scope.share_moment = function() {
      Wechat.share({
        message: {
          title: ’‘,
          description: '‘,
          thumb: ’‘,
          media: {
            type: Wechat.Type.WEBPAGE,
            webpageUrl: "’‘
          }
        },
        scene: Wechat.Scene.TIMELINE // share to Timeline
      }, function() {
        alert("Success");
      }, function(reason) {
        alert("Failed: " + reason);
      });
    };

    // 分享到朋友
    $scope.share_friend = function() {     
      Wechat.share({
        message: {
          title: '',
          description: '',
          thumb: '',
          media: {
            type: Wechat.Type.WEBPAGE,
            webpageUrl:''
          }
        },
        scene: Wechat.Scene.SESSION // share to SESSION
      }, function() {
        alert("Success");
      }, function(reason) {
        alert("Failed: " + reason);
      });
    }

  在实际过程当中可能会出现如下问题

app分享以后能能回到分享前的界面,app会从新启动

解决方法在config.xml文件下添加


<preference name="AndroidLaunchMode" value="singleTask" />

 

若是还不想多是你本地的环境问题,观察生成app包的时候是否是有问题

个人解决方法是

ionic platform remove android

ionic platform app android

从新生成便可

相关文章
相关标签/搜索