我试图设置一种方法来接收来自其他应用的网址。比如,您在浏览器中,单击共享,并将链接发送到另一个应用程序(我的应用程序)。我找到了this cordova plugin,并将其集成到我的应用中,但在测试时我仍然没有显示任何网址。
我收到一条提示:
getUri url:null
任何帮助都会很棒。如果有帮助,很乐意添加更多代码。
app.js
:
'use strict';
// angular.module is a global place for creating, registering and retrieving Angular modules
// 'starter' is the name of this angular module example (also set in a <body> attribute in index.html)
// the 2nd parameter is an array of 'requires'
angular.module('starter', [
'ionic',
'firebase',
'starter.services',
'starter.directives',
'starter.controllers',
'ngSanitize'
])
.run(function($rootScope, $state, $ionicPlatform, Post) {
$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);
}
if (window.StatusBar) {
// org.apache.cordova.statusbar required
StatusBar.styleDefault();
}
这是webintent:
if (window.plugins && window.plugins.webintent) {
window.plugins.webintent.getUri(function(url) {
alert("getUri url:"+url);
});
}
$rootScope.$on('$stateChangeError', function(event, toState, toParams,
fromState, fromParams, error) {
$state.go(error);
});
});
})
angular.module('starter.services', []);
angular.module('starter.directives', []);
angular.module('starter.controllers', []);
AndroidManifest.xml
:
<?xml version='1.0' encoding='utf-8'?>
<manifest android:hardwareAccelerated="true" android:versionCode="1" android:versionName="0.0.1" android:windowSoftInputMode="adjustPan" package="com.ionicframework.wefeed949805" xmlns:android="http://schemas.android.com/apk/res/android">
<supports-screens android:anyDensity="true" android:largeScreens="true" android:normalScreens="true" android:resizeable="true" android:smallScreens="true" android:xlargeScreens="true" />
<uses-permission android:name="android.permission.INTERNET" />
<application android:hardwareAccelerated="true" android:icon="@drawable/icon" android:label="@string/app_name">
<activity android:configChanges="orientation|keyboardHidden|keyboard|screenSize|locale" android:label="@string/app_name" android:launchMode="singleTop" android:name="wefeed" android:theme="@android:style/Theme.Black.NoTitleBar">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
<intent-filter>
<action android:name="android.intent.action.SEND" />
<category android:name="android.intent.category.DEFAULT" />
<data android:mimeType="text/plain" />
</intent-filter>
</activity>
</application>
<uses-sdk android:minSdkVersion="10" android:targetSdkVersion="19" />
</manifest>
答案 0 :(得分:7)
我一直在做类似的事情。我可以通过Initsogar
使用此插件获取网址该插件可在https://github.com/Initsogar/cordova-webintent
找到您可以按如下方式获取传入的网址:
var incomingURL
window.plugins.webintent.getExtra(window.plugins.webintent.EXTRA_TEXT,
function(url) {
incomingURL = url
console.log(incomingURL);
}, function() {
incomingURL = false;
}
);
希望这有帮助,并在应用程序上祝你好运!离子很棒:)
答案 1 :(得分:1)
对于一般帮助和最近的发展,我想添加一个答案。
有一个名为Custom URL scheme的cordova插件。对于插件的文档是可靠的,我不会添加任何进一步的信息。