2014-09-24 13 views
10

Başka bir uygulamadan bir URL almanın yolunu bulmaya çalışıyorum. Örneğin, tarayıcıdasınız, paylaş'ı tıklayıp bağlantıyı başka bir uygulamaya (uygulamam) gönderin. this cordova plugin numaralı telefonu buldum ve uygulamanıza entegre ettim, ancak test ettiğimde hiçbir url göstermemeye devam ediyorum.İyonik/Cordova adresinde URL al

getUri url:null

Herhangi bir yardım çok iyi olurdu:

Ben belirten bir uyarı olsun. Yardım ederseniz daha fazla kod eklemek için mutlu.

app.js

:

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

URL'yi açmaya çalışıyor musunuz? –

+0

Ben url ile "şeyler" yapacağım. Uygulamamda, URL sayfasından veri çekmek için bir api ile etkileşim kuracağım. Şu anda, URL'ye erişemiyorum, bu yüzden sadece yardımcı olmak yararlı olacaktır. – Shaun

+0

@Shaun: Bunu yapabiliyor musunuz? Hangi adımları izlediniz? –

cevap

7

Ben benzer bir şey üzerinde çalışıyoruz

'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(); 
    } 

Bu webintent olduğunu. Bu yardımcı olur

var incomingURL 
window.plugins.webintent.getExtra(window.plugins.webintent.EXTRA_TEXT, 
     function(url) { 
     incomingURL = url 
     console.log(incomingURL); 
     }, function() { 
     incomingURL = false; 
     } 
); 

Umut ve iyi: Eklenti burada https://github.com/Initsogar/cordova-webintent

aşağıdaki gibi gelen url alabilirsiniz bulunabilir Initsogar

bu eklentiyi kullanarak url elde edebildi app şans! İyonik harikadır :)

+0

Yemin ederim bunu daha önce denedim ve işe yaramadı. Neyse teşekkürler! – Shaun

+0

Sorun değil! Ben getURI çalışırken ilk başta aynı sorunu vardı. Bu, tıpkı Flipboard gibi URL'den daha fazlasını paylaşan uygulamalar için de geçerlidir. Örneğin, 'paylaştığınız' ve makalede bir başlık ve bir URL iletir. 0/ –

+0

, http/https bağlantısı aracılığıyla başlatıldığında, '.getExtra()' yerine '.getUri()' yi kullanırken çalışır. Göründüğü niyet türüne bağlıdır. –

1

Genel yardım ve son gelişmeler için, buna bir cevap eklemek istiyorum.

Custom URL scheme adlı bir cordova eklentisi var. Eklenti belgelerinin katı olması için daha fazla bilgi eklemiyorum.

İlgili konular