Page navigation and routing functionality for navigating between pages and mini-programs with platform-specific adaptations for Baidu Smart Programs.
Navigate to a new page within the current application.
/**
* Navigate to a new page within the application
* @param options - Navigation options
* @returns Promise that resolves when navigation completes
*/
function navigateTo(options: NavigateToOptions): Promise<any>;
interface NavigateToOptions {
url: string;
success?(result: any): void;
fail?(error: any): void;
complete?(): void;
events?: any; // EventChannel for page communication
}Usage Examples:
import uni from "@dcloudio/uni-mp-baidu";
// Basic navigation
uni.navigateTo({
url: '/pages/detail/detail?id=123'
});
// Navigation with success callback
uni.navigateTo({
url: '/pages/user/profile',
success: (res) => {
console.log('Navigation successful', res);
},
fail: (err) => {
console.error('Navigation failed', err);
}
});
// Navigation with EventChannel (for page communication)
uni.navigateTo({
url: '/pages/detail/detail',
events: {
// Listen to events sent from the target page
acceptDataFromOpenedPage: function(data) {
console.log('Received data:', data);
}
}
});Redirect to a page, closing the current page.
/**
* Redirect to a page, closing the current page
* @param options - Redirect options
* @returns Promise that resolves when redirect completes
*/
function redirectTo(options: RedirectToOptions): Promise<any>;
interface RedirectToOptions {
url: string;
success?(result: any): void;
fail?(error: any): void;
complete?(): void;
}Usage Examples:
// Basic redirect
uni.redirectTo({
url: '/pages/login/login'
});
// Redirect with callback
uni.redirectTo({
url: '/pages/home/home',
success: () => {
console.log('Redirect successful');
}
});Navigate back in the page stack.
/**
* Navigate back in the page stack
* @param options - Navigation back options
* @returns Promise that resolves when navigation completes
*/
function navigateBack(options?: NavigateBackOptions): Promise<any>;
interface NavigateBackOptions {
delta?: number; // Number of pages to go back, default is 1
success?(result: any): void;
fail?(error: any): void;
complete?(): void;
}Usage Examples:
// Go back one page (default)
uni.navigateBack();
// Go back multiple pages
uni.navigateBack({
delta: 2
});
// Go back with callback
uni.navigateBack({
delta: 1,
success: () => {
console.log('Successfully navigated back');
}
});Navigate to another Baidu Smart Mini Program.
/**
* Navigate to another Baidu Smart Mini Program
* @param options - Navigation options
* @returns Promise that resolves when navigation completes
*/
function navigateToMiniProgram(options: NavigateToMiniProgramOptions): Promise<any>;
interface NavigateToMiniProgramOptions {
appId: string; // Target mini program app ID
path?: string; // Path within the target mini program
extraData?: any; // Data to pass to the target mini program
envVersion?: 'develop' | 'trial' | 'release'; // Version of target mini program
success?(result: any): void;
fail?(error: any): void;
complete?(): void;
}Usage Examples:
// Navigate to another mini program
uni.navigateToMiniProgram({
appId: 'target-app-id',
path: '/pages/index/index',
extraData: {
from: 'current-app',
data: { id: 123 }
},
envVersion: 'release',
success: (res) => {
console.log('Successfully navigated to mini program', res);
}
});Return from another mini program to the current one.
/**
* Return from another mini program to the current one
* @param options - Navigation back options
* @returns Promise that resolves when navigation completes
*/
function navigateBackMiniProgram(options?: NavigateBackMiniProgramOptions): Promise<any>;
interface NavigateBackMiniProgramOptions {
extraData?: any; // Data to return to the calling mini program
success?(result: any): void;
fail?(error: any): void;
complete?(): void;
}Usage Examples:
// Return to calling mini program
uni.navigateBackMiniProgram({
extraData: {
result: 'success',
data: { selected: 'item1' }
}
});navigateToMiniProgram is mapped to swan.navigateToSmartProgramnavigateBackMiniProgram is mapped to swan.navigateBackSmartProgramnavigateToAll navigation URLs should follow the format: /pages/pageName/pageName?param=value
/