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

重新生成即可


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM