How to open Twitter and Facebook app with Phonegap?

后端 未结 2 522
小鲜肉
小鲜肉 2020-12-29 14:20

I am trying to have my PhoneGap application link to open a specific users profile page in the Twitter app. I know not everyone has the Twitter app installed on their device

2条回答
  •  失恋的感觉
    2020-12-29 15:07

    Just a reference for others who might come here and want a bit more:

    I've been able to get this working well (so far) on both iOS and Android, and dynamically falling back to the browser using the code below.

    Required plugins are cordova-plugin-inappbrowser and cordova-plugin-appavailability

    function openBrowser (url) {
        if (!url) {
            return;
        }
    
        // turn my url into a scheme/intent url
        getAvailabilityScheme(url, function (url) {
            window.open(url, '_system');
        });
    }
    
    function getAvailabilityScheme (url, callback) {
        var schemeOrPackage;
        var schemeUrl;
    
        // check for appavaialbility plugin
        if (!window.appAvailability) {
            callback(url);
        }
    
        // facebook
        if (url.indexOf('facebook.com/') !== -1) {
            schemeOrPackage = isAndroid ? 'com.facebook.katana' : 'fb://'
            schemeUrl = 'fb://profile/' + url.split('facebook.com/')[1];
        }
    
        // twitter
        if (url.indexOf('twitter.com/') !== -1) {
            schemeOrPackage = isAndroid ? null : 'twitter://'
            schemeUrl = 'twitter://user?screen_name=' + url.split('twitter.com/')[1];
        }
    
        if (schemeOrPackage && schemeUrl) {
            window.appAvailability.check(schemeOrPackage, function () {
                callback(schemeUrl);
            }, function () {
                callback(url);
            });
        } else {
            callback(url);
        }
    }
    

    Using it is easy, just call the openBrowser(url) method with a normal website url. The only issue i found was that for a facebook page, it needs to an ID not the slug name

提交回复
热议问题