Android本机共享菜单:检测支持的浏览器

时间:2019-03-27 15:22:50

标签: javascript android html reactjs

我正在开发一个使用Web视图的Android应用,该应用包含下面发布的代码。

函数shareArticle()用于根据对navigator.share(Google用来调用本机共享菜单的API)的支持来过滤浏览器,并相应地进行处理。但是,单击调用该函数的按钮时没有任何反应,至少会提示一个警报提示。

有什么办法可以使我可以使用本机Android共享屏幕共享内容吗?

export const shareArticle = () => {
    return AndroidNativeShare("Title", "www.google.com", 'description');
};

async function AndroidNativeShare(Title, URL, Description) {
    if (typeof navigator.share === 'undefined' || !navigator.share) {
        alert('Your browser does not support Android Native Share, it\'s tested on chrome 63+');
    } else if (window.location.protocol != 'https:') {
        alert('Android Native Share support only on Https:// protocol');
    } else {
        if (typeof URL === 'undefined') {
            URL = window.location.href;
        }
        if (typeof Title === 'undefined') {
            Title = document.title;
        }
        if (typeof Description === 'undefined') {
            Description = 'Share your thoughts about ' + Title;
        }
        const TitleConst = Title;
        const URLConst = URL;
        const DescriptionConst = Description;

        try {
            await navigator.share({title: TitleConst, text: DescriptionConst, url: URLConst});
        } catch (error) {
            console.log('Error sharing: ' + error);
            return;
        }
    }
}

1 个答案:

答案 0 :(得分:0)

检查navigator.share是否存在是推荐的逻辑解决方案。不幸的是,这似乎在webviews中不起作用。在此处查看已提交的错误:https://bugs.chromium.org/p/chromium/issues/detail?id=765923