2017-03-07 38 views
2

私は、サードパーティがWkWebView内のiOSアプリにiframeしたウェブサイトを持っています。私のサイトには、このアプリで表示されるときにのみ現れるバグがあります。私は、バグをチェックするために特別にビルドしたブラウザまたは別のiOSアプリを使って、それを複製することはできません。バグを解決するには、アプリでリアルタイムに実行されているjavascriptをデバッグできる必要があります。もし私がアプリのデバッグビルドを持っていたら、これはとても簡単です:Safariのリモートデバッガに接続するだけですが、セキュリティ上の制約から、アプリケーション開発者はデバッグビルドを私にリリースすることはできません。iOSアプリでjavascriptをデバッグする方法WkWebView?

これらの条件でjavascriptをデバッグするためのオプションはありますか?

  • アプリコード
  • は、最低でもアプリ
  • のリリースビルドで動作するビュー・ログまたは、好ましくは、ブラウザのデベロッパーコンソールに匹敵する機能を公開しなければなりません変更することはできません。
    • アドオンをブレークポイント
    • ステップビューDOM
    • コードを
    • ビューコンソール出力
    • これが許容される可能にするために私のウェブサイトにJavaScriptライブラリをインポート
  • が、私は、コードベースの1

答えて

0

オーバーツールベースのソリューションを好むだろうあなたは、ANを送信することにより、必要なデータを取得することができますHTTP要求を関連するデバッグ情報とともにサーバーに送信します。プロダクションサイト上のすべてのユーザーのために実行され、デバッグするためにSafariを接続することができた場合の機能はどこにもありませんが、この特定の状況ではうまくいく可能性があります。

いくつかの基本的なJSがイベントをトリガし、ページのロードおよび/または使用者の周りにイベントを送信することがありますかの一般的なアイデアを与える:私はnavigator.userAgentに基づいて、粗iPhoneブールを含ま

<!DOCTYPE html> 
<html> 
<head> 
    <meta charset="utf-8"> 
    <meta name="viewport" content="width=device-width"> 
    <title>JS Bin</title> 
</head> 
<body> 
<button>Click Me</button> 
    <script> 
    var sendDebug = function(simpleObject) { 
     var serializedObject = JSON.stringify(simpleObject); 
     var iPhone = navigator.userAgent.indexOf('iPhone') > 0; 
     var xhr = new XMLHttpRequest(); 
     xhr.open('GET', `https://null.jsbin.com?iphone=${iPhone}&info=${serializedObject}`); 
     xhr.send(null); 
    } 
    document.querySelector('button').addEventListener('click', function() { 
     sendDebug('clicked the button'); 
    }) 
    sendDebug('page loaded'); 
    </script> 
</body> 
</html> 

。 iPhone専用のデータを送信するようにして、iPhone以外のリクエストでログを乱雑にしないようにすることもできます(userAgentをアプリから変更することができるので、送信内容を確認してください)。ただし、処理するトラフィックの量によっては、調整が不十分な場合があります。

これは、デバッグデータをクエリ文字列に追加してHTTP要求を作成します。これらは、サーバー上のアクセスログに表示されるはずです:

https://null.jsbin.com/?iphone=false&info=%22clicked%20the%20button%22

http://jsbin.com/novowoduka/edit?html,output

0

あなたは、Macから、iOSアプリに、Safariの開発者向けツールを接続することができます。そこから、ウェブビュー内のJavaScriptをデバッグし、MacのSafariでウェブサイトをテストしている場合に表示されるものを見ることができます。

ハイレベルな手順は次のとおりです。

+0

Appleが最新のiOSのビルドを変更していない限り、その機能はアプリのデバッグビルドを持つ場合にのみ機能し、アプリストアでは入手できません。 – asgallant

+0

Appleのドキュメントへのリンクが壊れています – dsjoerg

関連する問題