app端我用的是react-native
(o(╯□╰)o)直接上代码吧,知道地址后很简单的
import {Linking} from 'react-native';
async function openApp(appUrl, url = '') {
const supported = await Linking.canOpenURL(appUrl);
if (supported) {
await Linking.openURL(appUrl);
} else if(url) {
// 浏览器打开
const supportedTwo = await Linking.canOpenURL(url);
if(supportedTwo){
await Linking.openURL(url);
}
}
}
/**
* 跳转淘宝购买
* @param url
* @returns {Promise<void>}
*/
export async function taobaoBuy(url = '') {
// // 淘宝的商品链接,换成需要访问的地址
let openUrl = url;
// 因为 url 一般是从其它地方获取的,所以这里要将 http 和 https 删去
// 也可以直接输入 https:// 之后的内容,则不需要此步判断,直接调用 plus.runtime.openURL
if (url.substr(0, 5) === 'https') {
openUrl = `taobao://${url.substr(8)}`;
} else if (url.substr(0, 4) === 'http') {
openUrl = `taobao://${url.substr(7)}`;
}
openApp(openUrl, url);
}
/**
* 京东商品详情页
* @param url
* @returns {Promise<void>}
*/
export async function jdBuy(url = '') {
// 京东的商品链接
let openUrl = url;
if (url.substr(0, 5) === 'https') {
// 按照打开淘宝的方式打开京东,会出现无法跳转到对应的商品链接的问题
// 这里需要添加上参数,这样就能够正确跳转,这个方法是在uni-app社区看到的
let data = {category:'jump', des:'getCoupon',url: url.substr(8)};
openUrl = `openApp.jdMobile://virtual?params=${JSON.stringify(data)}`;
} else if (url.substr(0, 4) === 'http') {
let data = {category:'jump', des:'getCoupon',url: url.substr(7)};
openUrl = `openApp.jdMobile://virtual?params=${JSON.stringify(data)}`;
}
openApp(openUrl, url);
}
/**
* 拼多多商品详情页
* @param url
* @returns {Promise<void>}
*/
export async function pddBuy(url = '') {
// 拼多多的商品链接
let openUrl = url;
if (url.substr(0, 5) === 'https') {
openUrl = `pinduoduo://com.xunmeng.pinduoduo/${url.substr(7).replace('mobile.yangkeduo.com/', '')}`;
} else if (url.substr(0, 4) === 'http') {
openUrl = `pinduoduo://com.xunmeng.pinduoduo/${url.substr(7).replace('mobile.yangkeduo.com/', '')}`;
}
openApp(openUrl, url);
}