序文
オープンソース プロジェクト ChatGPT-Next-Web を通じてプライベート Web ページ ChatGPT をデプロイした後、アクセスをより便利にするために、wab2app を使用してそれを APK にパッケージ化することを考えました。最終的には効果が得られましたが、途中で多くの落とし穴に遭遇しました。道を記録してください
包装工程
HBuilder X をパッケージ化する Web サイトとソフトウェアがあります。ソフトウェア公式 Web サイト:https://www.dcloud.io/hbuilderx.html
その後、プロセスは次のようになります
プロジェクトを作成する
この部分では、Web ページとプロジェクト ファイルをパッケージ化するディレクトリを設定します。
マニフェスト.json ファイルを見つけて、関連する設定を順に設定します
アダプティブ アイコンを設定します この機能は、木製レターにはない重要なポイントです
:タイトル バーとステータス バーを互換性のあるものに設定する
キーポイント:デフォルトでは、どのページに戻っても、前のレイヤーに戻るのではなく、ソフトウェアを直接終了します。この設定を変更する必要があります。
client_index.html に次のコードを挿入します。注意が必要です: plus.webview.create はパッケージ化する URL を入力します。
<script>
function plusReady() {
var zxlmweb = plus.webview.create("https://gpt.songhuashu.cn")
zxlmweb.show(); // 显示窗口
var first = null;
plus.key.addEventListener("backbutton", function() { //监听返回按键
zxlmweb.canBack(function(e) { //监听webview窗口是否可以返回
if(e.canBack) { //可以返回
zxlmweb.back(); //返回上一页面
} else { //不可以返回
//处理逻辑:1秒内,连续两次按返回键,则退出应用;
//首次按键,提示‘再按一次退出应用’
if (!first) {
first = new Date().getTime();
this.$toast('再按一次退出应用');
setTimeout(function() {
first = null;
}, 1000);
} else {
if (new Date().getTime() - first < 1000) {
plus.runtime.quit();//退出app
}
}
}
});
}, false);
}
if(window.plus) {
plusReady();
} else {
document.addEventListener('plusready', plusReady, false);
}
</script>
そしたら梱包されてるよ
また問題もあります。リターンキーを押すと、プロンプトが表示されます。再按一次返回键退出点此可反馈意见
解決策は次のとおりです。
場合によってはこのようなことが起こる可能性があります
まずはWebサイトが正常に開けるかどうかを確認し、機内モードがオンにできる場合は再度更新してください。
場合によっては、一部の Web サイトは Wi-Fi でのみ開くことができ、データ トラフィックでは開けないことがありますが、これはほとんどありません。
最終効果
梱包プロセス中に多くの問題に遭遇し、最終的には解決しましたが、最も一般的なものは上記のとおりです。
また、クラウドパッケージングのノルマは1日5件と妥当ですが、私は得意なので3つのアカウントを登録し、それぞれのアカウントがプロジェクト管理者となり、パッケージ化するのに十数回かかりました外
参考記事
https://www.jianshu.com/p/43aecebfd57b
https://ask.dcloud.net.cn/question/86896
https://ask.dcloud.net.cn/article/1150
エピローグ
最終的に、ChatGPT をデプロイした Web ページを APK に正常にパッケージ化できました。これは悪くありません。