微信ブラウザ内h 5直接起動appの微信開放ラベルwx-open-launch-app
25012 ワード
以前、微信ブラウザ内でappを直接呼び覚ますか、微信のアプリ宝を受け取るか、テンセントの息子だったか.
微信は2020年5月に「微信オープンラベル」機能を発売した.
wx-open-launch-appは、微信ブラウザ内でappを直接起動するために使用され、パラメータを携帯することによってapp対応の内ページに直接アクセスすることもできる.
現在は息子ではなく、規定に従って微信SDKにアクセスすれば、この機能を直接使用することができます.
一、適用環境
微信バージョンの要求は:7.0.12以上です.システムバージョンの要件は、iOS 10.3以上、Android 5.0以上
二、アクセス微信JS-SDK
WeChat JS-SDKの要求に従ってセキュリティドメインをバインドし、configインタフェースを通じて権限を注入して構成を検証する
注意点:
1、オープンプラットフォームの要求に合う
https://developers.weixin.qq.com/doc/oplatform/Mobile_App/WeChat_H5_Launch_APP.html
2、appはアクセス微信sdkによってhttps://developers.weixin.qq.com/doc/oplatform/Mobile_App/Access_Guide/iOS.html
3、wx.config内に使用したopenTagListをリストします
WeChat開発者ツールでWebテストを開くと表示されます.
JS-SDKにアクセスできました
残念なことに、2020年7月13日現在、微信開発者ツールは微信オープンラベルのデバッグ機能をサポートできず、携帯電話でデバッグし、微信セキュリティドメイン名を付けたサーバ環境でデバッグするしかなく、面倒である.
三、VUEプロジェクト内でwx-open-launch-appを使用する
wx-open-launch-appというラベルはVUEプロジェクトのコンパイル時に認識できないため、main.jsファイルにエラーを無視するコードを付ける
wx-open-launch-appラベルコンポーネント
に注意
1、ラベル内の本来のslotは<
script type="text/wxtag-template”>
2、テストした結果、ラベル内に定義されたスタイルは本当に気まずくて、コントロールされていないことが分かったので、ラベルをCSSで絶対的に位置決めし、透明度をopacity:0に設定し、私たちの元の設計図に蓋をしました.
3、透明度opacity:0のラベル
<span style="font-family: Courier;">空にすることはできません.そうしないと、幅が0に解析されます.つまり、ボタンが全然クリックできません.</span>
</div>
<div>
<span style="font-family: Courier;">4、ラベル内のappidは</span>
<strong><span style="font-family: Courier;"> </span></strong>
<span style="font-family: Courier;">微信公衆番号に記入したあなた方のappのappid</span>
</div>
<div>
<span style="font-family: Courier;">5、</span>extinfoにはappを喚起するデータが入力されていますが、私たちは微信7.0.15バージョンがios上で、データの受信に失敗する確率があることを発見しました.微信の問題なのか、IOSの書き方の問題なのか分かりません.
</div>
<div>
6.VUEのmountedライフサイクルコールバック関数内でオープンタグのコールバックイベントをリスニングする
</div>
<div>
<div class="cnblogs_code">
<pre><span style="color: #000000;">mounted(){
</span><span style="color: #0000ff;">var</span> btn = document.getElementById(<span style="color: #0000ff;">this</span><span style="color: #000000;">.id)
btn.addEventListener(</span>'launch', e =><span style="color: #000000;"> {
</span><span style="color: #008000;">//</span><span style="color: #008000;"> ここでは、appに渡されるパラメータ入力、</span>
console.log('success'<span style="color: #000000;">);
});
btn.addEventListener(</span>'error', e =><span style="color: #000000;"> {
</span><span style="color: #008000;">//</span><span style="color: #008000;"> ここでは、appに渡されるパラメータ入力、</span>
console.log('fail'<span style="color: #000000;">, e.detail);
</span><span style="color: #008000;">//</span><span style="color: #008000;"> 起動に失敗した場合、ここでアプリケーション宝<にジャンプするなどのダウングレード処理に使用できます./span>
<span style="color: #000000;"> });
}</span></pre>
</div>
<p> 7、もし微信バージョンが7.0.12以下であれば、オープンラベルは使用できないので、オープンラベルコートのDIVでイベントをクリックするために使用したほうがいい.イベント中断区間で微信バージョン番号が低ければ、アプリケーション宝などの方案<に降格する./p>
<div class="cnblogs_code">
<pre><div @click="launch">
<wx-open-launch-<span style="color: #000000;">app
:id</span>="id"<span style="color: #000000;">
class</span>="launch-btn"<span style="color: #000000;">
:appid</span>="appId"<span style="color: #000000;">
:extinfo</span>="extinfoStr"
>
<script type="text/wxtag-template">
<style>.btn {height: 96px;}</style>
<div class="btn">app</を開くdiv>
四、最後はもちろんプロジェクトにパッケージされたコンポーネントです.
五、参考微信公式リンク
アクセスガイド
https://developers.weixin.qq.com/doc/oplatform/Mobile_App/Access_Guide/iOS.html
微信内ホームページジャンプapp機能
https://developers.weixin.qq.com/doc/oplatform/Mobile_App/WeChat_H5_Launch_APP.html
JS-SDK使用手順
https://developers.weixin.qq.com/doc/offiaccount/OA_Web_Apps/JS-SDK.html#1
オープンラベルの説明
https://developers.weixin.qq.com/doc/offiaccount/OA_Web_Apps/Wechat_Open_Tag.html
注:転載は出典ブログ園:sheldon([email protected])
https://github.com/willian12345
微信は2020年5月に「微信オープンラベル」機能を発売した.
wx-open-launch-appは、微信ブラウザ内でappを直接起動するために使用され、パラメータを携帯することによってapp対応の内ページに直接アクセスすることもできる.
現在は息子ではなく、規定に従って微信SDKにアクセスすれば、この機能を直接使用することができます.
一、適用環境
微信バージョンの要求は:7.0.12以上です.システムバージョンの要件は、iOS 10.3以上、Android 5.0以上
二、アクセス微信JS-SDK
WeChat JS-SDKの要求に従ってセキュリティドメインをバインドし、configインタフェースを通じて権限を注入して構成を検証する
wx.config({
appId: '',
debug: true,
timestamp: '',
nonceStr: '',
signature: '',
jsApiList: [
'onMenuShareTimeline', //
'onMenuShareAppMessage', //
],
openTagList: ['wx-open-launch-app’] //
});
注意点:
1、オープンプラットフォームの要求に合う
https://developers.weixin.qq.com/doc/oplatform/Mobile_App/WeChat_H5_Launch_APP.html
2、appはアクセス微信sdkによってhttps://developers.weixin.qq.com/doc/oplatform/Mobile_App/Access_Guide/iOS.html
3、wx.config内に使用したopenTagListをリストします
WeChat開発者ツールでWebテストを開くと表示されます.
{errMsg: "config:ok”}
JS-SDKにアクセスできました
残念なことに、2020年7月13日現在、微信開発者ツールは微信オープンラベルのデバッグ機能をサポートできず、携帯電話でデバッグし、微信セキュリティドメイン名を付けたサーバ環境でデバッグするしかなく、面倒である.
三、VUEプロジェクト内でwx-open-launch-appを使用する
wx-open-launch-appというラベルはVUEプロジェクトのコンパイル時に認識できないため、main.jsファイルにエラーを無視するコードを付ける
//
Vue.config.ignoredElements = [
'wx-open-launch-app',
];
new Vue({
el: '#app',
template: '',
components: { app }
})
wx-open-launch-appラベルコンポーネント
app
:id="id"
class="launch-btn"
:appid="appId"
:extinfo="extinfoStr"
>
<style>.btn {height: 96px;}</style>
<div class="btn"> app</div>
に注意
1、ラベル内の本来のslotは<
script type="text/wxtag-template”>
2、テストした結果、ラベル内に定義されたスタイルは本当に気まずくて、コントロールされていないことが分かったので、ラベルをCSSで絶対的に位置決めし、透明度をopacity:0に設定し、私たちの元の設計図に蓋をしました.
3、透明度opacity:0のラベル
<span style="font-family: Courier;">空にすることはできません.そうしないと、幅が0に解析されます.つまり、ボタンが全然クリックできません.</span>
</div>
<div>
<span style="font-family: Courier;">4、ラベル内のappidは</span>
<strong><span style="font-family: Courier;"> </span></strong>
<span style="font-family: Courier;">微信公衆番号に記入したあなた方のappのappid</span>
</div>
<div>
<span style="font-family: Courier;">5、</span>extinfoにはappを喚起するデータが入力されていますが、私たちは微信7.0.15バージョンがios上で、データの受信に失敗する確率があることを発見しました.微信の問題なのか、IOSの書き方の問題なのか分かりません.
</div>
<div>
6.VUEのmountedライフサイクルコールバック関数内でオープンタグのコールバックイベントをリスニングする
</div>
<div>
<div class="cnblogs_code">
<pre><span style="color: #000000;">mounted(){
</span><span style="color: #0000ff;">var</span> btn = document.getElementById(<span style="color: #0000ff;">this</span><span style="color: #000000;">.id)
btn.addEventListener(</span>'launch', e =><span style="color: #000000;"> {
</span><span style="color: #008000;">//</span><span style="color: #008000;"> ここでは、appに渡されるパラメータ入力、</span>
console.log('success'<span style="color: #000000;">);
});
btn.addEventListener(</span>'error', e =><span style="color: #000000;"> {
</span><span style="color: #008000;">//</span><span style="color: #008000;"> ここでは、appに渡されるパラメータ入力、</span>
console.log('fail'<span style="color: #000000;">, e.detail);
</span><span style="color: #008000;">//</span><span style="color: #008000;"> 起動に失敗した場合、ここでアプリケーション宝<にジャンプするなどのダウングレード処理に使用できます./span>
<span style="color: #000000;"> });
}</span></pre>
</div>
<p> 7、もし微信バージョンが7.0.12以下であれば、オープンラベルは使用できないので、オープンラベルコートのDIVでイベントをクリックするために使用したほうがいい.イベント中断区間で微信バージョン番号が低ければ、アプリケーション宝などの方案<に降格する./p>
<div class="cnblogs_code">
<pre><div @click="launch">
<wx-open-launch-<span style="color: #000000;">app
:id</span>="id"<span style="color: #000000;">
class</span>="launch-btn"<span style="color: #000000;">
:appid</span>="appId"<span style="color: #000000;">
:extinfo</span>="extinfoStr"
>
<script type="text/wxtag-template">
<style>.btn {height: 96px;}</style>
<div class="btn">app</を開くdiv>
launch(){
// , app
if(!this.enable){
//
}
}
四、最後はもちろんプロジェクトにパッケージされたコンポーネントです.
<template>
<div @click="launch">
<wx-open-launch-app
:id="id"
class="launch-btn"
:appid="appId"
:extinfo="extinfoStr"
>
<script type="text/wxtag-template">
<style>.btn {height: 96px;}</style>
<div class="btn"> app</div>
script>
wx-open-launch-app>
div>
template>
<script>
import globalConfig from '@assets/js/config'
import { copyToClipboard } from '@assets/js/utils'
import { getWeixinVersion, onBridgeReady } from '@assets/js/weixin/weixin'
let idIndex = 0
export default {
name: 'LaunchButton',
props: {
extinfo: {
type: Object,
default: ''
},
},
watch: {
extinfo: {
handler(n){
this.extinfoStr = JSON.stringify(n)
},
immediate: true
}
},
data() {
idIndex++
return {
id: 'wxopenLanchAppId' + idIndex,
appId: globalConfig.WEIXIN_APP_ID,
enable: false,
extinfoStr: '',
}
},
methods: {
redirectToApp(){
setTimeout(()=>{
window.location.href = globalConfig.YING_YONG_BAO
}, 400)
},
setClipboard(){
console.log('start copy')
let copyObject = {
app: 'yogo'
}
for(var k in this.extinfo){
copyObject[k] = this.extinfo[k]
}
copyObject = JSON.stringify(copyObject)
copyToClipboard(copyObject)
console.log('end copy')
},
launch(){
this.setClipboard()
if(!this.enable){
this.redirectToApp()
}
}
},
created(){
// 7.0.12 app
const wxVersion = getWeixinVersion()
if(wxVersion){
let v = wxVersion.split('.')
if(v[0]>=7){
if(v[1]>=0){
if(v[2]>=12){
this.enable = true
}
}
}
}
},
mounted(){
var btn = document.getElementById(this.id)
btn.addEventListener('launch', e => {
this.setClipboard()
console.log('success');
});
btn.addEventListener('error', e => {
console.log('fail', e.detail);
this.setClipboard()
this.redirectToApp()
});
}
}
script>
<style lang="scss" scoped>
.launch-btn{
position: absolute;
left: 0;
top: 0;
width: 100%;
height: 100%;
z-index: 1;
opacity: 0;
// background: red;
}
style>
五、参考微信公式リンク
アクセスガイド
https://developers.weixin.qq.com/doc/oplatform/Mobile_App/Access_Guide/iOS.html
微信内ホームページジャンプapp機能
https://developers.weixin.qq.com/doc/oplatform/Mobile_App/WeChat_H5_Launch_APP.html
JS-SDK使用手順
https://developers.weixin.qq.com/doc/offiaccount/OA_Web_Apps/JS-SDK.html#1
オープンラベルの説明
https://developers.weixin.qq.com/doc/offiaccount/OA_Web_Apps/Wechat_Open_Tag.html
注:転載は出典ブログ園:sheldon([email protected])
https://github.com/willian12345