去前段時間公司的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
從新生成便可