我正在开发一个离子项目。我已经完成了安装社交共享和深度链接的所有步骤。
这是我安装插件时的模式。
ionic cordova plugin add ionic-plugin-deeplinks --variable URL_SCHEME=app --variable DEEPLINK_SCHEME=https --variable DEEPLINK_HOST=app.com --variable ANDROID_PATH_PREFIX=/
但当我与Social Sharing共享时,不发送url,Social Sharking以字符串形式发送,或通过电子邮件以字符串的形式发送一些结构,以url的形式发送其他部分。
例如通过挂起作为字符串
例如通过电子邮件app://app.com/page-->app://为字符串,app.com/page为url
在社交共享文档模式中,共享(meesage,subject,file,url)是
消息:字符串,主题:字符串,文件:字符串|数组,url:字符串
this.socialSharing.share('Lorem ipsum', 'title', null, 'app://app.com/about')
.then( ()=> {
console.log('Success');
})
.catch( (error)=> {
console.log('Error: ', error);
});
当我使用带有hiperlink的codepen.io浏览器进行测试时,该应用程序打开了深度链接。
< h1 >< a href="app://app.com/about" >Click Me< /a>< /h1>
但当我共享一个深度链接时,发送字符串。
为什么???你能帮我吗???
我也遇到了同样的问题,解决方案非常简单:
不要使用自定义url方案
不使用自定义url方案的主要原因是Gmail和其他网络邮件提供商确实破坏了诸如"app://..."。所以没有办法完成这项工作。
有关详细信息,请参阅以下链接:
- 在Android浏览器中创建链接以启动我的应用程序
- https://github.com/EddyVerbruggen/Custom-URL-scheme/issues/81
使用通用链接
Android和iOS支持通用链接。由于你已经在使用离子插件deeplinks插件,你已经配置了一个deeplinkurl。你所要做的就是改变
- href="app://app.com/about">
到
- href="https://app.com/about">
要使用通用链接,您需要为android和iOS创建配置文件。这些文件必须包括网站想要与之共享凭据的所有应用程序的应用程序标识符。有关详细信息,请参阅以下链接:
https://medium.com/@ageitgey/everything-you-need-to-now-a-on-implementing-ios-and-android-移动深度链接-f4348b265b49
文件必须位于您的网站上的
- https://www.example.com/.well-known/apple-app-site-association(适用于iOS)
- https://www.example.com/.well-known/assetlinks.json(适用于android)
如果存在,您还可以使用从我们的应用程序中的自定义URL和深度链接获取数据。否则,重定向到播放/应用商店,如下所示:
index.html
$(document).ready(function (){
var lifestoryId = getParameterByName('lifestoryId');
if(navigator.userAgent.toLowerCase().indexOf("android") > -1){
setTimeout(function () {
window.location.href = "http://play.google.com/store/apps/details?id=com.android.xyz&hl=en";
}, 5000);
}
if(navigator.userAgent.toLowerCase().indexOf("iphone") > -1){
setTimeout(function () {
window.location.href = "https://itunes.apple.com/us/app/app/id12345678?ls=1&mt=8";
}, 5000);
}
window.location.href = "app://lifestory/info:"+lifestoryId;
});
function getParameterByName(name, url) {
if (!url) url = window.location.href;
name = name.replace(/[[]]/g, "\$&");
var regex = new RegExp("[?&]" + name + "(=([^&#]*)|&|#|$)"),
results = regex.exec(url);
if (!results) return null;
if (!results[2]) return '';
return decodeURIComponent(results[2].replace(/+/g, " "));
}
呼叫链接类似:BASE_URL/index.html?lifestoryId=123