Итак, я занимаюсь этим уже 3 дня... Пробовал несколько руководств, таких как эту и пробовал после исходной страницы здесь и тысячу раз прочитать описание на GitHub.
Версии, которые я использую:
$ npm -v
3.7.3
$ cordova -v
6.1.0 (cordova-lib@undefined)
$ ionic -v
1.7.14
Ошибка, которую я получаю в браузере Chrome: Не удается прочитать свойство «общий доступ к социальным сетям» неопределенного. На телефоне Android или iOS ничего не происходит, если нажимать кнопки. Даже не вызов функции ошибки.
Контроллер app.js +: (обратите внимание, что я пытаюсь использовать window.plugins и без .plugins!)
angular.module('starter', ['ionic', 'ngCordova'])
.run(function($ionicPlatform) {
$ionicPlatform.ready(function() {
// Hide the accessory bar by default (remove this to show the accessory bar above the keyboard
// for form inputs)
if (window.cordova && window.cordova.plugins.Keyboard) {
cordova.plugins.Keyboard.hideKeyboardAccessoryBar(true);
cordova.plugins.Keyboard.disableScroll(true);
}
if (window.StatusBar) {
// org.apache.cordova.statusbar required
StatusBar.styleDefault();
}
});
})
.controller('shareCtrl',['$scope',function($scope) {
$scope.facebookShare=function(){
window.socialsharing.shareViaFacebook('Digital Signature Maker', null /* img */, "https://play.google.com/store/apps/details?id=com.prantikv.digitalsignaturemaker" /* url */, null,
function(errormsg){alert("Error: Cannot Share")});
}
$scope.whatsappShare=function(){
window.plugins.socialsharing.shareViaWhatsApp('Digital Signature Maker', null /* img */, "https://play.google.com/store/apps/details?id=com.prantikv.digitalsignaturemaker" /* url */, null,
function(errormsg){alert("Error: Cannot Share")});
}
Пробовал устанавливать даже вручную, а тут другая ошибка. Когда я вставил SocialSharing.js в index.html (до cordova.js), консоль Chrome сообщила: Uncaught ReferenceError: требование не определено, что находится в строке 1 SocialSharing.js:
var cordova = require('cordova');
Итак, я успешно установил require.sj (npm install -g requirejs), а затем попытался вручную, но появились совершенно разные ошибки.
Пробовал переустанавливать плагин или удалять и снова добавлять платформы, но без изменений.
Не уверен, что это связано, но пытался использовать ngCordova $cordovaFileOpener2, и он всегда выдавал ошибку undefined для Cordova. (На реальном телефоне тоже не работало)
Ценим любую помощь! Спасибо
ОБНОВЛЕНИЕ: я вставил все содержимое файла .js выше.
Обратите внимание, что я успешно установил плагин общего доступа:
cordova plugin add cordova-plugin-x-socialsharing
Fetching plugin "cordova-plugin-x-socialsharing" via npm
Installing "cordova-plugin-x-socialsharing" for android
Вот мой index.html:
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<meta name="viewport" content="initial-scale=1, maximum-scale=1, user-scalable=no, width=device-width">
<title></title>
<link href="lib/ionic/css/ionic.css" rel="stylesheet">
<link href="css/style.css" rel="stylesheet">
<!-- ionic/angularjs js -->
<script src="lib/ionic/js/ionic.bundle.js"></script>
<!-- cordova script (this will be a 404 during development) -->
<script src="lib/ng-cordova.min.js"></script>
<script src="cordova.js"></script>
<!-- your app's js -->
<script src="js/app.js"></script>
</head>
<body ng-app="starter">
<ion-view view-title="Share">
<ion-content ng-controller="shareCtrl">
<div class="card">
<div class="item item-divider">
<b> Share this app</b>
</div>
<ul class="list">
<li class="item" id="displayLabel">
<button class="button button-block button-royal item-icon-left" ng-click="whatsappShare()">
<i class="icon ion-social-whatsapp"></i>
WhatsApp
</button>
</li>
<li class="item" id="displayLabel">
<button class="button button-block button-royal item-icon-left" ng-click="facebookShare()">
<i class="icon ion-social-twitter"></i>
facebook
</button>
</li>
<li class="item" id="displayLabel">
<button class="button button-block button-royal item-icon-left" ng-click="OtherShare()">
<i class="icon ion-android-share-alt"></i>
Other
</button>
</li>
</ul>
</div>
</ion-content>
</ion-view>
</body>
</html>