gpt4 book ai didi

node.js - Ionic Cordova 社交共享插件 - 无法读取未定义的属性 'socialsharing'

转载 作者:太空宇宙 更新时间:2023-11-03 21:57:36 25 4
gpt4 key购买 nike

所以我已经做了三天了......尝试了几个教程,如 this一、原页here后尝试,并阅读 GitHub 描述一千遍。

我正在使用的版本:

$ npm -v
3.7.3

$ cordova -v
6.1.0 (cordova-lib@undefined)

$ ionic -v
1.7.14

我在 Chrome 浏览器中遇到的错误:无法读取未定义的“socialsharing”属性。在 Android 或 iOS 手机上,如果按下按钮,则不会发生任何情况。甚至没有错误函数调用。

app.js + Controller :(请注意,我正在尝试使用 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: require is not Define,位于 SocialSharing.js 的第 1 行:

var cordova = require('cordova');

所以我成功安装了 require.sj (npm install -g requirejs),然后手动尝试,但出现了完全不同类型的错误。

尝试重新安装插件或删除并再次添加平台,但没有任何变化。

不确定它是否相关,但尝试使用 ngCordova 的 $cordovaFileOpener2 并且总是给出 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>

最佳答案

实际上,插件提供了对基于网络的应用程序通常无法使用的设备和平台功能的访问。因此您可能无法在浏览器上实现插件功能。

您可以使用插件或 ngCordova.js 文件在设备(android/ios/模拟器)上实现

使用插件

安装:cordova 插件添加 cordova-plugin-x-socialsharing

用法:

.controller('ShareCtrl', function ($scope) {
$scope.whatsappShare = function(){
if(window.plugins.socialsharing) {
window.plugins.socialsharing.canShareVia('whatsapp',
'msg', null, null, null,
function (e) {
//do something
},
function (e) {
//error occured
});
}
}
})

使用 ng-Cordova

安装:在项目中添加 ng-cordova 文件并将其包含在 index.html 文件中

<script src="lib/ng-cordova.min.js"></script>

用法:

.controller('ShareCtrl', function ($scope,$cordovaSocialSharing) {
$scope.shareByWhatsApp = function() {
$cordovaSocialSharing
.shareViaWhatsApp('sharedMsg', "", shareAppLink)
.then(function(result) {
}, function(err) {
// An error occurred. Show a message to the user
alert("error : "+err);
});
};
})

关于node.js - Ionic Cordova 社交共享插件 - 无法读取未定义的属性 'socialsharing',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36345746/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com