App Extensions
- Refer to Extension Callback Usage
Initial Configuration
- Add an extension page (Web-View component) to your
app.json
json
{
"pages": [
"sdk/extensions/webview"
]
}- Import the extension mixins into each page's JavaScript
Pageobject:
js
mixins: [
require('/sdk/extensions/functions'),
],Page Implementation
Insert the navigation link at the appropriate location for each scenario.
- Link-based Navigation
html
<!-- Assign link data to global state using handleExtensionTap -->
<navigator url="/sdk/extensions/webview"
bind:tap="handleExtensionTap"
data-title="Fresns Manage"
data-url="{{appUrl}}"
data-pid="{{post.pid}}"
data-uid="{{post.author.uid}}"
data-post-message-key="fresnsPostManage">
Manage
</navigator>- Menu-based Navigation
js
// Extension Web-View Data
const navigatorData = {
title: 'Fresns Manage',
url: appUrl,
pid: post.pid,
uid: post.author.uid,
postMessageKey: 'fresnsPostManage',
};
// Assign navigation data to global state
const app = getApp();
app.globalData.navigatorData = navigatorData;
// Navigate to the extension page
wx.navigateTo({
url: '/sdk/extensions/webview',
});Navigation Handling
web-view
https://github.com/fresns/client-wechat/tree/3.x/sdk/extensions/webview.js
- The SDK-packaged
Web Viewpage automatically handles the navigation links and listens for callback messages. - Callback messages are stored under the key
fresnsCallbackMessage.
Callback Handling
postMessage
https://github.com/fresns/client-wechat/tree/3.x/mixins/fresnsCallback.js
js
mixins: [
require('/mixins/fresnsCallback'),
],- Import the extension mixins into each page’s JavaScript
Pageobject. - This JS module, which you define yourself, reads and processes stored callback messages.
- For the structure of callback messages, refer to postMessage Documentation.
- After interpreting and handling the callback messages, clear them from storage.