zoukankan      html  css  js  c++  java
  • ionic 微信分享值各种坑

    去前段时间公司的app需要做微信分享,然后网上找的教程,在做的时候发现网上的教程各种坑,现在将做得过程分享出来

    在做功能之前你需要做几步预备工作,

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

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

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

    (1)生成证书

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

    (2)签名app

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

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

    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

    重新生成即可

  • 相关阅读:
    重新整理 .net core 实践篇————配置系统之盟约[五]
    重新整理 .net core 实践篇————依赖注入应用之援军[四]
    重新整理 .net core 实践篇————依赖注入应用之生命法则[三]
    重新整理 .net core 实践篇————依赖注入应用[二]
    重新整理 .net core 实践篇————配置应用[一]
    spring cloud 学习笔记 客户端(本地)均衡负载(三)
    Leetcode之插入区间
    Leetcode之两棵二叉搜索树中的所有元素
    Leetcode之二叉树的层序遍历
    LeetCode之验证二叉搜索树
  • 原文地址:https://www.cnblogs.com/happen-/p/5991794.html
Copyright © 2011-2022 走看看